Built motion from commit a61a4a20.|2.5.46
[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 _0x2f35=['/oauth/v2/token','info','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','../../components/integrations/configuration','exports','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','code','host','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code','application/x-www-form-urlencoded','then','parse','refreshToken','refresh_token','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','https://accounts.zoho.com.au'];(function(_0x531e48,_0x4bb96b){var _0x202971=function(_0x403bf5){while(--_0x403bf5){_0x531e48['push'](_0x531e48['shift']());}};_0x202971(++_0x4bb96b);}(_0x2f35,0xb2));var _0x52f3=function(_0x475191,_0x5bce86){_0x475191=_0x475191-0x0;var _0x189e96=_0x2f35[_0x475191];return _0x189e96;};'use strict';var _=require(_0x52f3('0x0'));var util=require(_0x52f3('0x1'));var logger=require(_0x52f3('0x2'))(_0x52f3('0x3'));var moment=require(_0x52f3('0x4'));var BPromise=require(_0x52f3('0x5'));var rp=require(_0x52f3('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x52f3('0x7'));var config=require(_0x52f3('0x8'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0x52f3('0x9'));module[_0x52f3('0xa')]=function(_0x128c91,_0x268255){return _0x128c91['define'](_0x52f3('0xb'),attributes,{'tableName':_0x52f3('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x477425,_0x1a41d3,_0x40a334){if(_0x477425[_0x52f3('0xd')](_0x52f3('0xe'))||_0x477425[_0x52f3('0xd')](_0x52f3('0xf'))||_0x477425[_0x52f3('0xd')](_0x52f3('0x10'))||_0x477425[_0x52f3('0xd')](_0x52f3('0x11'))||_0x477425[_0x52f3('0xd')](_0x52f3('0x12'))||_0x477425['changed'](_0x52f3('0x13'))){var _0xda4d4a,_0x21fea9;_0xda4d4a=_0x477425['serverUrl'];var _0x53eea4=_0xda4d4a[_0x52f3('0x14')](-0x1);if(_0x53eea4==='/'||_0x53eea4==='\x5c'||_0x53eea4===':'){_0xda4d4a=_0xda4d4a[_0x52f3('0x15')](0x0,_0xda4d4a[_0x52f3('0x16')](_0x53eea4));}switch(_0x477425['zone']){case'US':_0x21fea9=_0x52f3('0x17');break;case'AU':_0x21fea9='https://accounts.zoho.com.au';break;case'IN':_0x21fea9=_0x52f3('0x18');break;case'CN':_0x21fea9=_0x52f3('0x19');break;default:_0x21fea9=_0x52f3('0x1a');break;}var _0x3f654c={'method':_0x52f3('0x1b'),'uri':_0x21fea9+'/oauth/v2/token','form':{'grant_type':_0x52f3('0x1c'),'client_id':_0x477425[_0x52f3('0x10')],'client_secret':_0x477425[_0x52f3('0x11')],'redirect_uri':_0x477425[_0x52f3('0xf')],'code':_0x477425[_0x52f3('0x12')]},'headers':{'Content-Type':_0x52f3('0x1d')}};return rp(_0x3f654c)[_0x52f3('0x1e')](function(_0x2b19e6){var _0x29c8e2=JSON[_0x52f3('0x1f')](_0x2b19e6);if(_0x29c8e2['refresh_token']){_0x477425[_0x52f3('0x20')]=_0x29c8e2[_0x52f3('0x21')];logger['info'](util[_0x52f3('0x22')](_0x52f3('0x23'),_0x477425[_0x52f3('0x24')],_0x477425['id']));}else{logger[_0x52f3('0x25')](util[_0x52f3('0x22')](_0x52f3('0x26'),_0x477425[_0x52f3('0x24')],_0x477425['id']),util[_0x52f3('0x27')](_0x29c8e2,{'showHidden':![],'depth':null}));}return _0x40a334(null,_0x1a41d3);})[_0x52f3('0x28')](function(_0xd6145a){logger[_0x52f3('0x25')](util[_0x52f3('0x22')](_0x52f3('0x26'),_0x477425[_0x52f3('0x24')],_0x477425['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x40a334(_0xd6145a);});}else{return _0x40a334(null,_0x1a41d3);}},'beforeUpdate':function(_0x3d473e,_0x20e1df,_0x36ee23){if(_0x3d473e['changed'](_0x52f3('0xe'))||_0x3d473e[_0x52f3('0xd')](_0x52f3('0xf'))||_0x3d473e[_0x52f3('0xd')](_0x52f3('0x10'))||_0x3d473e[_0x52f3('0xd')]('clientSecret')||_0x3d473e[_0x52f3('0xd')]('code')||_0x3d473e['changed'](_0x52f3('0x13'))){var _0x5044de,_0x330b1f;_0x5044de=_0x3d473e['serverUrl'];var _0x3b13c8=_0x5044de[_0x52f3('0x14')](-0x1);if(_0x3b13c8==='/'||_0x3b13c8==='\x5c'||_0x3b13c8===':'){_0x5044de=_0x5044de[_0x52f3('0x15')](0x0,_0x5044de['lastIndexOf'](_0x3b13c8));}switch(_0x3d473e[_0x52f3('0xe')]){case'US':_0x330b1f=_0x52f3('0x17');break;case'AU':_0x330b1f=_0x52f3('0x29');break;case'IN':_0x330b1f=_0x52f3('0x18');break;case'CN':_0x330b1f=_0x52f3('0x19');break;default:_0x330b1f=_0x52f3('0x1a');break;}var _0x4ec191={'method':'POST','uri':_0x330b1f+_0x52f3('0x2a'),'form':{'grant_type':_0x52f3('0x1c'),'client_id':_0x3d473e[_0x52f3('0x10')],'client_secret':_0x3d473e['clientSecret'],'redirect_uri':_0x3d473e['serverUrl'],'code':_0x3d473e[_0x52f3('0x12')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x4ec191)[_0x52f3('0x1e')](function(_0x410ff9){var _0x449b25=JSON[_0x52f3('0x1f')](_0x410ff9);if(_0x449b25['refresh_token']){_0x3d473e[_0x52f3('0x20')]=_0x449b25['refresh_token'];logger[_0x52f3('0x2b')](util[_0x52f3('0x22')](_0x52f3('0x23'),_0x3d473e[_0x52f3('0x24')],_0x3d473e['id']));}else{logger[_0x52f3('0x25')](util[_0x52f3('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x3d473e['name'],_0x3d473e['id']),util[_0x52f3('0x27')](_0x449b25,{'showHidden':![],'depth':null}));}return _0x36ee23(null,_0x20e1df);})['catch'](function(_0x1fa55e){logger[_0x52f3('0x25')](util['format'](_0x52f3('0x26'),_0x3d473e[_0x52f3('0x24')],_0x3d473e['id']),util[_0x52f3('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x36ee23(_0x1fa55e);});}else{return _0x36ee23(null,_0x20e1df);}}}});};