7b24bea4ec957642f1f05710714b14abcbb14c4e
[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 _0x3066=['rimraf','../../config/environment','./intZohoAccount.attributes','exports','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','clientId','clientSecret','code','host','slice','substring','lastIndexOf','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code','application/x-www-form-urlencoded','then','parse','info','format','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','/oauth/v2/token','refresh_token','refreshToken','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x4876a5,_0x58f4ba){var _0x474ddc=function(_0x49dc75){while(--_0x49dc75){_0x4876a5['push'](_0x4876a5['shift']());}};_0x474ddc(++_0x58f4ba);}(_0x3066,0x185));var _0x6306=function(_0x380c78,_0x37bbfd){_0x380c78=_0x380c78-0x0;var _0x1aad3e=_0x3066[_0x380c78];return _0x1aad3e;};'use strict';var _=require(_0x6306('0x0'));var util=require(_0x6306('0x1'));var logger=require(_0x6306('0x2'))(_0x6306('0x3'));var moment=require(_0x6306('0x4'));var BPromise=require(_0x6306('0x5'));var rp=require(_0x6306('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6306('0x7'));var config=require(_0x6306('0x8'));var attributes=require(_0x6306('0x9'));var integrations=require('../../components/integrations/configuration');module[_0x6306('0xa')]=function(_0x4d26a7,_0x1c5261){return _0x4d26a7[_0x6306('0xb')](_0x6306('0xc'),attributes,{'tableName':_0x6306('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x3bfe77,_0x22cb58,_0x28f97f){if(_0x3bfe77[_0x6306('0xe')]('zone')||_0x3bfe77['changed'](_0x6306('0xf'))||_0x3bfe77['changed'](_0x6306('0x10'))||_0x3bfe77['changed'](_0x6306('0x11'))||_0x3bfe77[_0x6306('0xe')](_0x6306('0x12'))||_0x3bfe77['changed'](_0x6306('0x13'))){var _0x20d8ec,_0x3acdc9;_0x20d8ec=_0x3bfe77['serverUrl'];var _0x4b42bc=_0x20d8ec[_0x6306('0x14')](-0x1);if(_0x4b42bc==='/'||_0x4b42bc==='\x5c'||_0x4b42bc===':'){_0x20d8ec=_0x20d8ec[_0x6306('0x15')](0x0,_0x20d8ec[_0x6306('0x16')](_0x4b42bc));}switch(_0x3bfe77[_0x6306('0x17')]){case'US':_0x3acdc9=_0x6306('0x18');break;case'AU':_0x3acdc9=_0x6306('0x19');break;case'IN':_0x3acdc9=_0x6306('0x1a');break;case'CN':_0x3acdc9=_0x6306('0x1b');break;default:_0x3acdc9=_0x6306('0x1c');break;}var _0x53c06d={'method':_0x6306('0x1d'),'uri':_0x3acdc9+'/oauth/v2/token','form':{'grant_type':_0x6306('0x1e'),'client_id':_0x3bfe77[_0x6306('0x10')],'client_secret':_0x3bfe77[_0x6306('0x11')],'redirect_uri':_0x3bfe77[_0x6306('0xf')],'code':_0x3bfe77[_0x6306('0x12')]},'headers':{'Content-Type':_0x6306('0x1f')}};return rp(_0x53c06d)[_0x6306('0x20')](function(_0x27806c){var _0x5e8c44=JSON[_0x6306('0x21')](_0x27806c);if(_0x5e8c44['refresh_token']){_0x3bfe77['refreshToken']=_0x5e8c44['refresh_token'];logger[_0x6306('0x22')](util[_0x6306('0x23')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x3bfe77[_0x6306('0x24')],_0x3bfe77['id']));}else{logger[_0x6306('0x25')](util[_0x6306('0x23')](_0x6306('0x26'),_0x3bfe77[_0x6306('0x24')],_0x3bfe77['id']),util[_0x6306('0x27')](_0x5e8c44,{'showHidden':![],'depth':null}));}return _0x28f97f(null,_0x22cb58);})[_0x6306('0x28')](function(_0x343362){logger[_0x6306('0x25')](util[_0x6306('0x23')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x3bfe77[_0x6306('0x24')],_0x3bfe77['id']),util[_0x6306('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x28f97f(_0x343362);});}else{return _0x28f97f(null,_0x22cb58);}},'beforeUpdate':function(_0x4ee116,_0xfc79b2,_0xa1fd73){if(_0x4ee116[_0x6306('0xe')]('zone')||_0x4ee116[_0x6306('0xe')](_0x6306('0xf'))||_0x4ee116[_0x6306('0xe')](_0x6306('0x10'))||_0x4ee116[_0x6306('0xe')](_0x6306('0x11'))||_0x4ee116[_0x6306('0xe')](_0x6306('0x12'))||_0x4ee116[_0x6306('0xe')](_0x6306('0x13'))){var _0x433a6b,_0x1136f5;_0x433a6b=_0x4ee116['serverUrl'];var _0x39d322=_0x433a6b[_0x6306('0x14')](-0x1);if(_0x39d322==='/'||_0x39d322==='\x5c'||_0x39d322===':'){_0x433a6b=_0x433a6b[_0x6306('0x15')](0x0,_0x433a6b[_0x6306('0x16')](_0x39d322));}switch(_0x4ee116[_0x6306('0x17')]){case'US':_0x1136f5=_0x6306('0x18');break;case'AU':_0x1136f5=_0x6306('0x19');break;case'IN':_0x1136f5=_0x6306('0x1a');break;case'CN':_0x1136f5=_0x6306('0x1b');break;default:_0x1136f5='https://accounts.zoho.eu';break;}var _0x4191f0={'method':_0x6306('0x1d'),'uri':_0x1136f5+_0x6306('0x29'),'form':{'grant_type':_0x6306('0x1e'),'client_id':_0x4ee116[_0x6306('0x10')],'client_secret':_0x4ee116[_0x6306('0x11')],'redirect_uri':_0x4ee116[_0x6306('0xf')],'code':_0x4ee116['code']},'headers':{'Content-Type':_0x6306('0x1f')}};return rp(_0x4191f0)[_0x6306('0x20')](function(_0x3f24d9){var _0x3c6077=JSON[_0x6306('0x21')](_0x3f24d9);if(_0x3c6077[_0x6306('0x2a')]){_0x4ee116[_0x6306('0x2b')]=_0x3c6077['refresh_token'];logger[_0x6306('0x22')](util[_0x6306('0x23')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4ee116[_0x6306('0x24')],_0x4ee116['id']));}else{logger[_0x6306('0x25')](util[_0x6306('0x23')](_0x6306('0x26'),_0x4ee116[_0x6306('0x24')],_0x4ee116['id']),util[_0x6306('0x27')](_0x3c6077,{'showHidden':![],'depth':null}));}return _0xa1fd73(null,_0xfc79b2);})[_0x6306('0x28')](function(_0x5a290b){logger[_0x6306('0x25')](util[_0x6306('0x23')](_0x6306('0x26'),_0x4ee116[_0x6306('0x24')],_0x4ee116['id']),util[_0x6306('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0xa1fd73(_0x5a290b);});}else{return _0xa1fd73(null,_0xfc79b2);}}}});};