Built motion from commit 53172ac8.|2.6.30
[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 _0x1822=['inspect','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','changed','zone','serverUrl','clientSecret','code','slice','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','POST','/oauth/v2/token','authorization_code','clientId','application/x-www-form-urlencoded','then','refreshToken','refresh_token','info','format','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','host','substring','https://accounts.zoho.in','https://accounts.zoho.eu','parse'];(function(_0x2d8434,_0x43d781){var _0x26b9e4=function(_0x54f5b8){while(--_0x54f5b8){_0x2d8434['push'](_0x2d8434['shift']());}};_0x26b9e4(++_0x43d781);}(_0x1822,0x1af));var _0x2182=function(_0xc7c250,_0x32d066){_0xc7c250=_0xc7c250-0x0;var _0x2231cb=_0x1822[_0xc7c250];return _0x2231cb;};'use strict';var _=require(_0x2182('0x0'));var util=require(_0x2182('0x1'));var logger=require(_0x2182('0x2'))(_0x2182('0x3'));var moment=require(_0x2182('0x4'));var BPromise=require(_0x2182('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x2182('0x6'));var config=require(_0x2182('0x7'));var attributes=require(_0x2182('0x8'));var integrations=require(_0x2182('0x9'));module[_0x2182('0xa')]=function(_0x2f9948,_0x2cdf78){return _0x2f9948[_0x2182('0xb')](_0x2182('0xc'),attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x4229b3,_0x48e421,_0x26b0c4){if(_0x4229b3[_0x2182('0xd')](_0x2182('0xe'))||_0x4229b3[_0x2182('0xd')](_0x2182('0xf'))||_0x4229b3[_0x2182('0xd')]('clientId')||_0x4229b3['changed'](_0x2182('0x10'))||_0x4229b3[_0x2182('0xd')](_0x2182('0x11'))||_0x4229b3[_0x2182('0xd')]('host')){var _0x4c757e,_0x1a664f;_0x4c757e=_0x4229b3[_0x2182('0xf')];var _0xa2a9dc=_0x4c757e[_0x2182('0x12')](-0x1);if(_0xa2a9dc==='/'||_0xa2a9dc==='\x5c'||_0xa2a9dc===':'){_0x4c757e=_0x4c757e['substring'](0x0,_0x4c757e[_0x2182('0x13')](_0xa2a9dc));}switch(_0x4229b3[_0x2182('0xe')]){case'US':_0x1a664f=_0x2182('0x14');break;case'AU':_0x1a664f=_0x2182('0x15');break;case'IN':_0x1a664f='https://accounts.zoho.in';break;case'CN':_0x1a664f=_0x2182('0x16');break;default:_0x1a664f='https://accounts.zoho.eu';break;}var _0x14a434={'method':_0x2182('0x17'),'uri':_0x1a664f+_0x2182('0x18'),'form':{'grant_type':_0x2182('0x19'),'client_id':_0x4229b3[_0x2182('0x1a')],'client_secret':_0x4229b3[_0x2182('0x10')],'redirect_uri':_0x4229b3[_0x2182('0xf')],'code':_0x4229b3['code']},'headers':{'Content-Type':_0x2182('0x1b')}};return rp(_0x14a434)[_0x2182('0x1c')](function(_0x412f3d){var _0x16130f=JSON['parse'](_0x412f3d);if(_0x16130f['refresh_token']){_0x4229b3[_0x2182('0x1d')]=_0x16130f[_0x2182('0x1e')];logger[_0x2182('0x1f')](util[_0x2182('0x20')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4229b3[_0x2182('0x21')],_0x4229b3['id']));}else{logger[_0x2182('0x22')](util[_0x2182('0x20')](_0x2182('0x23'),_0x4229b3['name'],_0x4229b3['id']),util['inspect'](_0x16130f,{'showHidden':![],'depth':null}));}return _0x26b0c4(null,_0x48e421);})[_0x2182('0x24')](function(_0xbb998d){logger[_0x2182('0x22')](util['format'](_0x2182('0x23'),_0x4229b3['name'],_0x4229b3['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x26b0c4(_0xbb998d);});}else{return _0x26b0c4(null,_0x48e421);}},'beforeUpdate':function(_0x5ba5f0,_0x526daf,_0xc550a7){if(_0x5ba5f0['changed'](_0x2182('0xe'))||_0x5ba5f0[_0x2182('0xd')](_0x2182('0xf'))||_0x5ba5f0[_0x2182('0xd')](_0x2182('0x1a'))||_0x5ba5f0[_0x2182('0xd')](_0x2182('0x10'))||_0x5ba5f0[_0x2182('0xd')](_0x2182('0x11'))||_0x5ba5f0['changed'](_0x2182('0x25'))){var _0x27b806,_0x2db3bb;_0x27b806=_0x5ba5f0[_0x2182('0xf')];var _0x2215f9=_0x27b806['slice'](-0x1);if(_0x2215f9==='/'||_0x2215f9==='\x5c'||_0x2215f9===':'){_0x27b806=_0x27b806[_0x2182('0x26')](0x0,_0x27b806['lastIndexOf'](_0x2215f9));}switch(_0x5ba5f0[_0x2182('0xe')]){case'US':_0x2db3bb=_0x2182('0x14');break;case'AU':_0x2db3bb='https://accounts.zoho.com.au';break;case'IN':_0x2db3bb=_0x2182('0x27');break;case'CN':_0x2db3bb=_0x2182('0x16');break;default:_0x2db3bb=_0x2182('0x28');break;}var _0x567649={'method':_0x2182('0x17'),'uri':_0x2db3bb+_0x2182('0x18'),'form':{'grant_type':_0x2182('0x19'),'client_id':_0x5ba5f0[_0x2182('0x1a')],'client_secret':_0x5ba5f0['clientSecret'],'redirect_uri':_0x5ba5f0[_0x2182('0xf')],'code':_0x5ba5f0[_0x2182('0x11')]},'headers':{'Content-Type':_0x2182('0x1b')}};return rp(_0x567649)['then'](function(_0x5c093c){var _0x5d957c=JSON[_0x2182('0x29')](_0x5c093c);if(_0x5d957c[_0x2182('0x1e')]){_0x5ba5f0[_0x2182('0x1d')]=_0x5d957c[_0x2182('0x1e')];logger[_0x2182('0x1f')](util[_0x2182('0x20')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x5ba5f0[_0x2182('0x21')],_0x5ba5f0['id']));}else{logger['error'](util[_0x2182('0x20')](_0x2182('0x23'),_0x5ba5f0[_0x2182('0x21')],_0x5ba5f0['id']),util[_0x2182('0x2a')](_0x5d957c,{'showHidden':![],'depth':null}));}return _0xc550a7(null,_0x526daf);})[_0x2182('0x24')](function(_0x51aded){logger[_0x2182('0x22')](util[_0x2182('0x20')](_0x2182('0x23'),_0x5ba5f0['name'],_0x5ba5f0['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0xc550a7(_0x51aded);});}else{return _0xc550a7(null,_0x526daf);}}}});};