Built motion from commit 753c950e.|2.5.42
[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 _0x40a9=['api','moment','bluebird','request-promise','../../config/environment','exports','define','ZohoAccount','int_zoho_accounts','zone','changed','serverUrl','clientId','code','slice','lastIndexOf','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','authorization_code','clientSecret','application/x-www-form-urlencoded','parse','refreshToken','refresh_token','info','format','name','error','inspect','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','host','substring','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','lodash','../../config/logger'];(function(_0x422516,_0x2b8a2c){var _0x11d5b4=function(_0x1d2a9){while(--_0x1d2a9){_0x422516['push'](_0x422516['shift']());}};_0x11d5b4(++_0x2b8a2c);}(_0x40a9,0x1c1));var _0x940a=function(_0x23f657,_0x5a13b3){_0x23f657=_0x23f657-0x0;var _0x31c783=_0x40a9[_0x23f657];return _0x31c783;};'use strict';var _=require(_0x940a('0x0'));var util=require('util');var logger=require(_0x940a('0x1'))(_0x940a('0x2'));var moment=require(_0x940a('0x3'));var BPromise=require(_0x940a('0x4'));var rp=require(_0x940a('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x940a('0x6'));var attributes=require('./intZohoAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0x940a('0x7')]=function(_0x52d896,_0xb5d46d){return _0x52d896[_0x940a('0x8')](_0x940a('0x9'),attributes,{'tableName':_0x940a('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x179dce,_0xcd4157,_0xc8555){if(_0x179dce['changed'](_0x940a('0xb'))||_0x179dce[_0x940a('0xc')](_0x940a('0xd'))||_0x179dce[_0x940a('0xc')](_0x940a('0xe'))||_0x179dce[_0x940a('0xc')]('clientSecret')||_0x179dce[_0x940a('0xc')](_0x940a('0xf'))||_0x179dce['changed']('host')){var _0x4b66d4,_0x163179;_0x4b66d4=_0x179dce[_0x940a('0xd')];var _0x19897a=_0x4b66d4[_0x940a('0x10')](-0x1);if(_0x19897a==='/'||_0x19897a==='\x5c'||_0x19897a===':'){_0x4b66d4=_0x4b66d4['substring'](0x0,_0x4b66d4[_0x940a('0x11')](_0x19897a));}switch(_0x179dce[_0x940a('0xb')]){case'US':_0x163179='https://accounts.zoho.com';break;case'AU':_0x163179='https://accounts.zoho.com.au';break;case'IN':_0x163179=_0x940a('0x12');break;case'CN':_0x163179=_0x940a('0x13');break;default:_0x163179='https://accounts.zoho.eu';break;}var _0xcbe903={'method':_0x940a('0x14'),'uri':_0x163179+_0x940a('0x15'),'form':{'grant_type':_0x940a('0x16'),'client_id':_0x179dce['clientId'],'client_secret':_0x179dce[_0x940a('0x17')],'redirect_uri':_0x179dce[_0x940a('0xd')],'code':_0x179dce[_0x940a('0xf')]},'headers':{'Content-Type':_0x940a('0x18')}};return rp(_0xcbe903)['then'](function(_0x2f9c34){var _0x4aa7eb=JSON[_0x940a('0x19')](_0x2f9c34);if(_0x4aa7eb['refresh_token']){_0x179dce[_0x940a('0x1a')]=_0x4aa7eb[_0x940a('0x1b')];logger[_0x940a('0x1c')](util[_0x940a('0x1d')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x179dce[_0x940a('0x1e')],_0x179dce['id']));}else{logger[_0x940a('0x1f')](util[_0x940a('0x1d')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x179dce[_0x940a('0x1e')],_0x179dce['id']),util[_0x940a('0x20')](_0x4aa7eb,{'showHidden':![],'depth':null}));}return _0xc8555(null,_0xcd4157);})[_0x940a('0x21')](function(_0x27d0c6){logger[_0x940a('0x1f')](util[_0x940a('0x1d')](_0x940a('0x22'),_0x179dce[_0x940a('0x1e')],_0x179dce['id']),util[_0x940a('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0xc8555(_0x27d0c6);});}else{return _0xc8555(null,_0xcd4157);}},'beforeUpdate':function(_0x3ad579,_0x4e634a,_0x31cfe0){if(_0x3ad579['changed']('zone')||_0x3ad579[_0x940a('0xc')](_0x940a('0xd'))||_0x3ad579['changed']('clientId')||_0x3ad579[_0x940a('0xc')]('clientSecret')||_0x3ad579[_0x940a('0xc')](_0x940a('0xf'))||_0x3ad579['changed'](_0x940a('0x23'))){var _0x2dfe03,_0x3cd824;_0x2dfe03=_0x3ad579[_0x940a('0xd')];var _0x5beb4b=_0x2dfe03[_0x940a('0x10')](-0x1);if(_0x5beb4b==='/'||_0x5beb4b==='\x5c'||_0x5beb4b===':'){_0x2dfe03=_0x2dfe03[_0x940a('0x24')](0x0,_0x2dfe03[_0x940a('0x11')](_0x5beb4b));}switch(_0x3ad579[_0x940a('0xb')]){case'US':_0x3cd824=_0x940a('0x25');break;case'AU':_0x3cd824=_0x940a('0x26');break;case'IN':_0x3cd824=_0x940a('0x12');break;case'CN':_0x3cd824=_0x940a('0x13');break;default:_0x3cd824=_0x940a('0x27');break;}var _0x3c98a0={'method':_0x940a('0x14'),'uri':_0x3cd824+_0x940a('0x15'),'form':{'grant_type':_0x940a('0x16'),'client_id':_0x3ad579[_0x940a('0xe')],'client_secret':_0x3ad579[_0x940a('0x17')],'redirect_uri':_0x3ad579['serverUrl'],'code':_0x3ad579[_0x940a('0xf')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x3c98a0)['then'](function(_0x3b8762){var _0x209fa7=JSON['parse'](_0x3b8762);if(_0x209fa7[_0x940a('0x1b')]){_0x3ad579[_0x940a('0x1a')]=_0x209fa7[_0x940a('0x1b')];logger[_0x940a('0x1c')](util[_0x940a('0x1d')](_0x940a('0x28'),_0x3ad579[_0x940a('0x1e')],_0x3ad579['id']));}else{logger[_0x940a('0x1f')](util[_0x940a('0x1d')](_0x940a('0x22'),_0x3ad579[_0x940a('0x1e')],_0x3ad579['id']),util['inspect'](_0x209fa7,{'showHidden':![],'depth':null}));}return _0x31cfe0(null,_0x4e634a);})[_0x940a('0x21')](function(_0x1643a2){logger['error'](util['format'](_0x940a('0x22'),_0x3ad579[_0x940a('0x1e')],_0x3ad579['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x31cfe0(_0x1643a2);});}else{return _0x31cfe0(null,_0x4e634a);}}}});};