Built motion from commit (unavailable).|2.5.16
[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 _0x0022=['moment','bluebird','request-promise','path','rimraf','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','code','host','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.eu','POST','/oauth/v2/token','refreshToken','refresh_token','info','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','name','inspect','https://accounts.zoho.com.cn','authorization_code','application/x-www-form-urlencoded','then','parse','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','lodash','util','../../config/logger'];(function(_0x6b7cf,_0x18fa2a){var _0x26419c=function(_0x34be6c){while(--_0x34be6c){_0x6b7cf['push'](_0x6b7cf['shift']());}};_0x26419c(++_0x18fa2a);}(_0x0022,0x1ab));var _0x2002=function(_0x4de723,_0x5d9958){_0x4de723=_0x4de723-0x0;var _0x423e4d=_0x0022[_0x4de723];return _0x423e4d;};'use strict';var _=require(_0x2002('0x0'));var util=require(_0x2002('0x1'));var logger=require(_0x2002('0x2'))('api');var moment=require(_0x2002('0x3'));var BPromise=require(_0x2002('0x4'));var rp=require(_0x2002('0x5'));var fs=require('fs');var path=require(_0x2002('0x6'));var rimraf=require(_0x2002('0x7'));var config=require('../../config/environment');var attributes=require('./intZohoAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0x2002('0x8')]=function(_0x147a91,_0x44c6c6){return _0x147a91[_0x2002('0x9')](_0x2002('0xa'),attributes,{'tableName':_0x2002('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x28aecc,_0x360490,_0x2a1ed6){if(_0x28aecc[_0x2002('0xc')](_0x2002('0xd'))||_0x28aecc[_0x2002('0xc')](_0x2002('0xe'))||_0x28aecc[_0x2002('0xc')](_0x2002('0xf'))||_0x28aecc[_0x2002('0xc')](_0x2002('0x10'))||_0x28aecc[_0x2002('0xc')](_0x2002('0x11'))||_0x28aecc['changed'](_0x2002('0x12'))){var _0x32149a,_0x42b9de;_0x32149a=_0x28aecc['serverUrl'];var _0x502249=_0x32149a[_0x2002('0x13')](-0x1);if(_0x502249==='/'||_0x502249==='\x5c'||_0x502249===':'){_0x32149a=_0x32149a[_0x2002('0x14')](0x0,_0x32149a[_0x2002('0x15')](_0x502249));}switch(_0x28aecc[_0x2002('0xd')]){case'US':_0x42b9de=_0x2002('0x16');break;case'AU':_0x42b9de=_0x2002('0x17');break;case'IN':_0x42b9de=_0x2002('0x18');break;case'CN':_0x42b9de='https://accounts.zoho.com.cn';break;default:_0x42b9de=_0x2002('0x19');break;}var _0x2328ac={'method':_0x2002('0x1a'),'uri':_0x42b9de+_0x2002('0x1b'),'form':{'grant_type':'authorization_code','client_id':_0x28aecc[_0x2002('0xf')],'client_secret':_0x28aecc[_0x2002('0x10')],'redirect_uri':_0x28aecc[_0x2002('0xe')],'code':_0x28aecc['code']},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x2328ac)['then'](function(_0x557f9c){var _0x58c549=JSON['parse'](_0x557f9c);if(_0x58c549['refresh_token']){_0x28aecc[_0x2002('0x1c')]=_0x58c549[_0x2002('0x1d')];logger[_0x2002('0x1e')](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x28aecc['name'],_0x28aecc['id']));}else{logger[_0x2002('0x1f')](util[_0x2002('0x20')](_0x2002('0x21'),_0x28aecc['name'],_0x28aecc['id']),util['inspect'](_0x58c549,{'showHidden':![],'depth':null}));}return _0x2a1ed6(null,_0x360490);})[_0x2002('0x22')](function(_0x337686){logger[_0x2002('0x1f')](util[_0x2002('0x20')](_0x2002('0x21'),_0x28aecc[_0x2002('0x23')],_0x28aecc['id']),util[_0x2002('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x2a1ed6(_0x337686);});}else{return _0x2a1ed6(null,_0x360490);}},'beforeUpdate':function(_0x3424e6,_0x42b027,_0x305b95){if(_0x3424e6[_0x2002('0xc')](_0x2002('0xd'))||_0x3424e6['changed']('serverUrl')||_0x3424e6[_0x2002('0xc')]('clientId')||_0x3424e6[_0x2002('0xc')](_0x2002('0x10'))||_0x3424e6[_0x2002('0xc')]('code')||_0x3424e6[_0x2002('0xc')](_0x2002('0x12'))){var _0x362fe0,_0x17d321;_0x362fe0=_0x3424e6['serverUrl'];var _0x38e718=_0x362fe0[_0x2002('0x13')](-0x1);if(_0x38e718==='/'||_0x38e718==='\x5c'||_0x38e718===':'){_0x362fe0=_0x362fe0['substring'](0x0,_0x362fe0['lastIndexOf'](_0x38e718));}switch(_0x3424e6['zone']){case'US':_0x17d321=_0x2002('0x16');break;case'AU':_0x17d321=_0x2002('0x17');break;case'IN':_0x17d321='https://accounts.zoho.in';break;case'CN':_0x17d321=_0x2002('0x25');break;default:_0x17d321='https://accounts.zoho.eu';break;}var _0x3e770e={'method':'POST','uri':_0x17d321+'/oauth/v2/token','form':{'grant_type':_0x2002('0x26'),'client_id':_0x3424e6[_0x2002('0xf')],'client_secret':_0x3424e6[_0x2002('0x10')],'redirect_uri':_0x3424e6['serverUrl'],'code':_0x3424e6[_0x2002('0x11')]},'headers':{'Content-Type':_0x2002('0x27')}};return rp(_0x3e770e)[_0x2002('0x28')](function(_0x5aac96){var _0x173f97=JSON[_0x2002('0x29')](_0x5aac96);if(_0x173f97[_0x2002('0x1d')]){_0x3424e6[_0x2002('0x1c')]=_0x173f97['refresh_token'];logger['info'](util[_0x2002('0x20')](_0x2002('0x2a'),_0x3424e6['name'],_0x3424e6['id']));}else{logger[_0x2002('0x1f')](util[_0x2002('0x20')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x3424e6[_0x2002('0x23')],_0x3424e6['id']),util[_0x2002('0x24')](_0x173f97,{'showHidden':![],'depth':null}));}return _0x305b95(null,_0x42b027);})[_0x2002('0x22')](function(_0x1a536e){logger[_0x2002('0x1f')](util[_0x2002('0x20')](_0x2002('0x21'),_0x3424e6['name'],_0x3424e6['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x305b95(_0x1a536e);});}else{return _0x305b95(null,_0x42b027);}}}});};