d92b6309b29754c96e2c7fca43da20678d653bf0
[motion2.git] / server / api / intZohoAccount / intZohoAccount.model.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xcbda=['slice','substring','lastIndexOf','https://accounts.zoho.in','POST','/oauth/v2/token','authorization_code','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','serverUrl','code','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','catch','lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','define','ZohoAccount','int_zoho_accounts','changed','zone','clientId','clientSecret','host'];(function(_0x3c1d36,_0x2e8496){var _0x523c7f=function(_0x3086d9){while(--_0x3086d9){_0x3c1d36['push'](_0x3c1d36['shift']());}};_0x523c7f(++_0x2e8496);}(_0xcbda,0x171));var _0xacbd=function(_0xf52cf9,_0x42d140){_0xf52cf9=_0xf52cf9-0x0;var _0x3096b8=_0xcbda[_0xf52cf9];return _0x3096b8;};'use strict';var _=require(_0xacbd('0x0'));var util=require(_0xacbd('0x1'));var logger=require('../../config/logger')(_0xacbd('0x2'));var moment=require('moment');var BPromise=require(_0xacbd('0x3'));var rp=require(_0xacbd('0x4'));var fs=require('fs');var path=require(_0xacbd('0x5'));var rimraf=require(_0xacbd('0x6'));var config=require(_0xacbd('0x7'));var attributes=require(_0xacbd('0x8'));var integrations=require(_0xacbd('0x9'));module['exports']=function(_0x17b17,_0x320c8a){return _0x17b17[_0xacbd('0xa')](_0xacbd('0xb'),attributes,{'tableName':_0xacbd('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2e73fd,_0x3dc3e4,_0x285ad5){if(_0x2e73fd[_0xacbd('0xd')](_0xacbd('0xe'))||_0x2e73fd[_0xacbd('0xd')]('serverUrl')||_0x2e73fd[_0xacbd('0xd')](_0xacbd('0xf'))||_0x2e73fd['changed'](_0xacbd('0x10'))||_0x2e73fd[_0xacbd('0xd')]('code')||_0x2e73fd[_0xacbd('0xd')](_0xacbd('0x11'))){var _0x26fa58,_0x398c7a;_0x26fa58=_0x2e73fd['serverUrl'];var _0x4c3147=_0x26fa58[_0xacbd('0x12')](-0x1);if(_0x4c3147==='/'||_0x4c3147==='\x5c'||_0x4c3147===':'){_0x26fa58=_0x26fa58[_0xacbd('0x13')](0x0,_0x26fa58[_0xacbd('0x14')](_0x4c3147));}switch(_0x2e73fd[_0xacbd('0xe')]){case'US':_0x398c7a='https://accounts.zoho.com';break;case'AU':_0x398c7a='https://accounts.zoho.com.au';break;case'IN':_0x398c7a=_0xacbd('0x15');break;case'CN':_0x398c7a='https://accounts.zoho.com.cn';break;default:_0x398c7a='https://accounts.zoho.eu';break;}var _0x513b20={'method':_0xacbd('0x16'),'uri':_0x398c7a+_0xacbd('0x17'),'form':{'grant_type':_0xacbd('0x18'),'client_id':_0x2e73fd[_0xacbd('0xf')],'client_secret':_0x2e73fd[_0xacbd('0x10')],'redirect_uri':_0x2e73fd['serverUrl'],'code':_0x2e73fd['code']},'headers':{'Content-Type':_0xacbd('0x19')}};return rp(_0x513b20)[_0xacbd('0x1a')](function(_0x4626e0){var _0xee548a=JSON[_0xacbd('0x1b')](_0x4626e0);if(_0xee548a[_0xacbd('0x1c')]){_0x2e73fd[_0xacbd('0x1d')]=_0xee548a[_0xacbd('0x1c')];logger[_0xacbd('0x1e')](util[_0xacbd('0x1f')](_0xacbd('0x20'),_0x2e73fd['name'],_0x2e73fd['id']));}else{logger[_0xacbd('0x21')](util[_0xacbd('0x1f')](_0xacbd('0x22'),_0x2e73fd[_0xacbd('0x23')],_0x2e73fd['id']),util[_0xacbd('0x24')](_0xee548a,{'showHidden':![],'depth':null}));}return _0x285ad5(null,_0x3dc3e4);})['catch'](function(_0x4aa845){logger[_0xacbd('0x21')](util[_0xacbd('0x1f')](_0xacbd('0x22'),_0x2e73fd['name'],_0x2e73fd['id']),util[_0xacbd('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x285ad5(_0x4aa845);});}else{return _0x285ad5(null,_0x3dc3e4);}},'beforeUpdate':function(_0x24c4cf,_0x5ef4e5,_0x1ea150){if(_0x24c4cf[_0xacbd('0xd')]('zone')||_0x24c4cf[_0xacbd('0xd')](_0xacbd('0x25'))||_0x24c4cf[_0xacbd('0xd')](_0xacbd('0xf'))||_0x24c4cf[_0xacbd('0xd')]('clientSecret')||_0x24c4cf['changed'](_0xacbd('0x26'))||_0x24c4cf[_0xacbd('0xd')](_0xacbd('0x11'))){var _0x3445e9,_0x269f3f;_0x3445e9=_0x24c4cf['serverUrl'];var _0x1bcb83=_0x3445e9['slice'](-0x1);if(_0x1bcb83==='/'||_0x1bcb83==='\x5c'||_0x1bcb83===':'){_0x3445e9=_0x3445e9['substring'](0x0,_0x3445e9['lastIndexOf'](_0x1bcb83));}switch(_0x24c4cf[_0xacbd('0xe')]){case'US':_0x269f3f=_0xacbd('0x27');break;case'AU':_0x269f3f=_0xacbd('0x28');break;case'IN':_0x269f3f=_0xacbd('0x15');break;case'CN':_0x269f3f=_0xacbd('0x29');break;default:_0x269f3f='https://accounts.zoho.eu';break;}var _0x171408={'method':'POST','uri':_0x269f3f+'/oauth/v2/token','form':{'grant_type':'authorization_code','client_id':_0x24c4cf[_0xacbd('0xf')],'client_secret':_0x24c4cf['clientSecret'],'redirect_uri':_0x24c4cf[_0xacbd('0x25')],'code':_0x24c4cf[_0xacbd('0x26')]},'headers':{'Content-Type':_0xacbd('0x19')}};return rp(_0x171408)['then'](function(_0x170ae3){var _0x5e242b=JSON[_0xacbd('0x1b')](_0x170ae3);if(_0x5e242b[_0xacbd('0x1c')]){_0x24c4cf['refreshToken']=_0x5e242b[_0xacbd('0x1c')];logger[_0xacbd('0x1e')](util[_0xacbd('0x1f')](_0xacbd('0x20'),_0x24c4cf[_0xacbd('0x23')],_0x24c4cf['id']));}else{logger[_0xacbd('0x21')](util['format'](_0xacbd('0x22'),_0x24c4cf['name'],_0x24c4cf['id']),util[_0xacbd('0x24')](_0x5e242b,{'showHidden':![],'depth':null}));}return _0x1ea150(null,_0x5ef4e5);})[_0xacbd('0x2a')](function(_0x30be2f){logger[_0xacbd('0x21')](util['format'](_0xacbd('0x22'),_0x24c4cf[_0xacbd('0x23')],_0x24c4cf['id']),util[_0xacbd('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x1ea150(_0x30be2f);});}else{return _0x1ea150(null,_0x5ef4e5);}}}});};