Built motion from commit cafec4f3.|2.6.31
[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 _0x7ea5=['https://accounts.zoho.in','/oauth/v2/token','application/x-www-form-urlencoded','refreshToken','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','zone','changed','serverUrl','clientId','clientSecret','code','host','slice','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code','then','parse','refresh_token','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','catch','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','substring'];(function(_0xb24a3e,_0x4a3594){var _0x4038d7=function(_0x1ea3c3){while(--_0x1ea3c3){_0xb24a3e['push'](_0xb24a3e['shift']());}};_0x4038d7(++_0x4a3594);}(_0x7ea5,0xbc));var _0x57ea=function(_0x5bb40b,_0xc2ee56){_0x5bb40b=_0x5bb40b-0x0;var _0x2c32e8=_0x7ea5[_0x5bb40b];return _0x2c32e8;};'use strict';var _=require(_0x57ea('0x0'));var util=require(_0x57ea('0x1'));var logger=require(_0x57ea('0x2'))(_0x57ea('0x3'));var moment=require(_0x57ea('0x4'));var BPromise=require(_0x57ea('0x5'));var rp=require(_0x57ea('0x6'));var fs=require('fs');var path=require(_0x57ea('0x7'));var rimraf=require('rimraf');var config=require(_0x57ea('0x8'));var attributes=require(_0x57ea('0x9'));var integrations=require(_0x57ea('0xa'));module[_0x57ea('0xb')]=function(_0x3e45d7,_0x47fc38){return _0x3e45d7[_0x57ea('0xc')](_0x57ea('0xd'),attributes,{'tableName':_0x57ea('0xe'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x42851a,_0xbc2ea4,_0x4e8741){if(_0x42851a['changed'](_0x57ea('0xf'))||_0x42851a[_0x57ea('0x10')](_0x57ea('0x11'))||_0x42851a['changed'](_0x57ea('0x12'))||_0x42851a[_0x57ea('0x10')](_0x57ea('0x13'))||_0x42851a['changed'](_0x57ea('0x14'))||_0x42851a['changed'](_0x57ea('0x15'))){var _0x514c92,_0x477e73;_0x514c92=_0x42851a['serverUrl'];var _0x2c1a5f=_0x514c92[_0x57ea('0x16')](-0x1);if(_0x2c1a5f==='/'||_0x2c1a5f==='\x5c'||_0x2c1a5f===':'){_0x514c92=_0x514c92['substring'](0x0,_0x514c92[_0x57ea('0x17')](_0x2c1a5f));}switch(_0x42851a['zone']){case'US':_0x477e73=_0x57ea('0x18');break;case'AU':_0x477e73=_0x57ea('0x19');break;case'IN':_0x477e73='https://accounts.zoho.in';break;case'CN':_0x477e73=_0x57ea('0x1a');break;default:_0x477e73=_0x57ea('0x1b');break;}var _0x5652e4={'method':_0x57ea('0x1c'),'uri':_0x477e73+'/oauth/v2/token','form':{'grant_type':_0x57ea('0x1d'),'client_id':_0x42851a[_0x57ea('0x12')],'client_secret':_0x42851a[_0x57ea('0x13')],'redirect_uri':_0x42851a[_0x57ea('0x11')],'code':_0x42851a[_0x57ea('0x14')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x5652e4)[_0x57ea('0x1e')](function(_0x38d276){var _0x15e57d=JSON[_0x57ea('0x1f')](_0x38d276);if(_0x15e57d[_0x57ea('0x20')]){_0x42851a['refreshToken']=_0x15e57d[_0x57ea('0x20')];logger[_0x57ea('0x21')](util[_0x57ea('0x22')](_0x57ea('0x23'),_0x42851a[_0x57ea('0x24')],_0x42851a['id']));}else{logger['error'](util[_0x57ea('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x42851a['name'],_0x42851a['id']),util['inspect'](_0x15e57d,{'showHidden':![],'depth':null}));}return _0x4e8741(null,_0xbc2ea4);})[_0x57ea('0x25')](function(_0x414820){logger[_0x57ea('0x26')](util[_0x57ea('0x22')](_0x57ea('0x27'),_0x42851a[_0x57ea('0x24')],_0x42851a['id']),util[_0x57ea('0x28')](parsedResult,{'showHidden':![],'depth':null}));return _0x4e8741(_0x414820);});}else{return _0x4e8741(null,_0xbc2ea4);}},'beforeUpdate':function(_0x6a4c5c,_0x537303,_0xfc64fd){if(_0x6a4c5c[_0x57ea('0x10')](_0x57ea('0xf'))||_0x6a4c5c[_0x57ea('0x10')]('serverUrl')||_0x6a4c5c[_0x57ea('0x10')](_0x57ea('0x12'))||_0x6a4c5c[_0x57ea('0x10')](_0x57ea('0x13'))||_0x6a4c5c['changed'](_0x57ea('0x14'))||_0x6a4c5c[_0x57ea('0x10')](_0x57ea('0x15'))){var _0x245350,_0x25ea1e;_0x245350=_0x6a4c5c[_0x57ea('0x11')];var _0x5e9209=_0x245350[_0x57ea('0x16')](-0x1);if(_0x5e9209==='/'||_0x5e9209==='\x5c'||_0x5e9209===':'){_0x245350=_0x245350[_0x57ea('0x29')](0x0,_0x245350[_0x57ea('0x17')](_0x5e9209));}switch(_0x6a4c5c[_0x57ea('0xf')]){case'US':_0x25ea1e=_0x57ea('0x18');break;case'AU':_0x25ea1e=_0x57ea('0x19');break;case'IN':_0x25ea1e=_0x57ea('0x2a');break;case'CN':_0x25ea1e='https://accounts.zoho.com.cn';break;default:_0x25ea1e=_0x57ea('0x1b');break;}var _0x39606b={'method':_0x57ea('0x1c'),'uri':_0x25ea1e+_0x57ea('0x2b'),'form':{'grant_type':'authorization_code','client_id':_0x6a4c5c[_0x57ea('0x12')],'client_secret':_0x6a4c5c[_0x57ea('0x13')],'redirect_uri':_0x6a4c5c[_0x57ea('0x11')],'code':_0x6a4c5c[_0x57ea('0x14')]},'headers':{'Content-Type':_0x57ea('0x2c')}};return rp(_0x39606b)[_0x57ea('0x1e')](function(_0x3bcfff){var _0x176570=JSON[_0x57ea('0x1f')](_0x3bcfff);if(_0x176570[_0x57ea('0x20')]){_0x6a4c5c[_0x57ea('0x2d')]=_0x176570['refresh_token'];logger['info'](util[_0x57ea('0x22')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x6a4c5c[_0x57ea('0x24')],_0x6a4c5c['id']));}else{logger[_0x57ea('0x26')](util['format'](_0x57ea('0x27'),_0x6a4c5c['name'],_0x6a4c5c['id']),util['inspect'](_0x176570,{'showHidden':![],'depth':null}));}return _0xfc64fd(null,_0x537303);})[_0x57ea('0x25')](function(_0x5437f6){logger['error'](util['format'](_0x57ea('0x27'),_0x6a4c5c[_0x57ea('0x24')],_0x6a4c5c['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0xfc64fd(_0x5437f6);});}else{return _0xfc64fd(null,_0x537303);}}}});};