Built motion from commit c738b9ac.|2.6.25
[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 _0xa138=['application/x-www-form-urlencoded','refresh_token','info','format','name','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','error','clientId','host','https://accounts.zoho.com','then','parse','refreshToken','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','lodash','util','../../config/logger','api','moment','bluebird','../../config/environment','../../components/integrations/configuration','exports','int_zoho_accounts','changed','zone','serverUrl','clientSecret','code','slice','substring','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code'];(function(_0x164eca,_0x555e28){var _0x2ce562=function(_0x148ca6){while(--_0x148ca6){_0x164eca['push'](_0x164eca['shift']());}};_0x2ce562(++_0x555e28);}(_0xa138,0xd3));var _0x8a13=function(_0xdb50eb,_0x2319de){_0xdb50eb=_0xdb50eb-0x0;var _0x473426=_0xa138[_0xdb50eb];return _0x473426;};'use strict';var _=require(_0x8a13('0x0'));var util=require(_0x8a13('0x1'));var logger=require(_0x8a13('0x2'))(_0x8a13('0x3'));var moment=require(_0x8a13('0x4'));var BPromise=require(_0x8a13('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x8a13('0x6'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0x8a13('0x7'));module[_0x8a13('0x8')]=function(_0x5de9f3,_0x3f7730){return _0x5de9f3['define']('ZohoAccount',attributes,{'tableName':_0x8a13('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x27a983,_0x3a48f8,_0x43d04a){if(_0x27a983[_0x8a13('0xa')](_0x8a13('0xb'))||_0x27a983[_0x8a13('0xa')](_0x8a13('0xc'))||_0x27a983[_0x8a13('0xa')]('clientId')||_0x27a983[_0x8a13('0xa')](_0x8a13('0xd'))||_0x27a983[_0x8a13('0xa')](_0x8a13('0xe'))||_0x27a983[_0x8a13('0xa')]('host')){var _0x47e747,_0x3092f4;_0x47e747=_0x27a983['serverUrl'];var _0x330b2d=_0x47e747[_0x8a13('0xf')](-0x1);if(_0x330b2d==='/'||_0x330b2d==='\x5c'||_0x330b2d===':'){_0x47e747=_0x47e747[_0x8a13('0x10')](0x0,_0x47e747['lastIndexOf'](_0x330b2d));}switch(_0x27a983['zone']){case'US':_0x3092f4='https://accounts.zoho.com';break;case'AU':_0x3092f4=_0x8a13('0x11');break;case'IN':_0x3092f4=_0x8a13('0x12');break;case'CN':_0x3092f4=_0x8a13('0x13');break;default:_0x3092f4=_0x8a13('0x14');break;}var _0x56014d={'method':_0x8a13('0x15'),'uri':_0x3092f4+'/oauth/v2/token','form':{'grant_type':_0x8a13('0x16'),'client_id':_0x27a983['clientId'],'client_secret':_0x27a983[_0x8a13('0xd')],'redirect_uri':_0x27a983[_0x8a13('0xc')],'code':_0x27a983[_0x8a13('0xe')]},'headers':{'Content-Type':_0x8a13('0x17')}};return rp(_0x56014d)['then'](function(_0x3965be){var _0xb122fe=JSON['parse'](_0x3965be);if(_0xb122fe[_0x8a13('0x18')]){_0x27a983['refreshToken']=_0xb122fe[_0x8a13('0x18')];logger[_0x8a13('0x19')](util[_0x8a13('0x1a')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x27a983[_0x8a13('0x1b')],_0x27a983['id']));}else{logger['error'](util[_0x8a13('0x1a')](_0x8a13('0x1c'),_0x27a983[_0x8a13('0x1b')],_0x27a983['id']),util[_0x8a13('0x1d')](_0xb122fe,{'showHidden':![],'depth':null}));}return _0x43d04a(null,_0x3a48f8);})[_0x8a13('0x1e')](function(_0x4b65d7){logger[_0x8a13('0x1f')](util['format'](_0x8a13('0x1c'),_0x27a983[_0x8a13('0x1b')],_0x27a983['id']),util[_0x8a13('0x1d')](parsedResult,{'showHidden':![],'depth':null}));return _0x43d04a(_0x4b65d7);});}else{return _0x43d04a(null,_0x3a48f8);}},'beforeUpdate':function(_0x31e2a5,_0x4dc300,_0x35b8bb){if(_0x31e2a5[_0x8a13('0xa')]('zone')||_0x31e2a5[_0x8a13('0xa')](_0x8a13('0xc'))||_0x31e2a5[_0x8a13('0xa')](_0x8a13('0x20'))||_0x31e2a5[_0x8a13('0xa')]('clientSecret')||_0x31e2a5[_0x8a13('0xa')](_0x8a13('0xe'))||_0x31e2a5['changed'](_0x8a13('0x21'))){var _0x487d25,_0x5292bc;_0x487d25=_0x31e2a5[_0x8a13('0xc')];var _0xf6d97d=_0x487d25[_0x8a13('0xf')](-0x1);if(_0xf6d97d==='/'||_0xf6d97d==='\x5c'||_0xf6d97d===':'){_0x487d25=_0x487d25[_0x8a13('0x10')](0x0,_0x487d25['lastIndexOf'](_0xf6d97d));}switch(_0x31e2a5[_0x8a13('0xb')]){case'US':_0x5292bc=_0x8a13('0x22');break;case'AU':_0x5292bc=_0x8a13('0x11');break;case'IN':_0x5292bc=_0x8a13('0x12');break;case'CN':_0x5292bc='https://accounts.zoho.com.cn';break;default:_0x5292bc=_0x8a13('0x14');break;}var _0xf62a4b={'method':_0x8a13('0x15'),'uri':_0x5292bc+'/oauth/v2/token','form':{'grant_type':'authorization_code','client_id':_0x31e2a5[_0x8a13('0x20')],'client_secret':_0x31e2a5['clientSecret'],'redirect_uri':_0x31e2a5['serverUrl'],'code':_0x31e2a5[_0x8a13('0xe')]},'headers':{'Content-Type':_0x8a13('0x17')}};return rp(_0xf62a4b)[_0x8a13('0x23')](function(_0x3ef926){var _0x45d7f0=JSON[_0x8a13('0x24')](_0x3ef926);if(_0x45d7f0[_0x8a13('0x18')]){_0x31e2a5[_0x8a13('0x25')]=_0x45d7f0[_0x8a13('0x18')];logger[_0x8a13('0x19')](util[_0x8a13('0x1a')](_0x8a13('0x26'),_0x31e2a5['name'],_0x31e2a5['id']));}else{logger[_0x8a13('0x1f')](util[_0x8a13('0x1a')](_0x8a13('0x1c'),_0x31e2a5['name'],_0x31e2a5['id']),util[_0x8a13('0x1d')](_0x45d7f0,{'showHidden':![],'depth':null}));}return _0x35b8bb(null,_0x4dc300);})['catch'](function(_0x647340){logger[_0x8a13('0x1f')](util[_0x8a13('0x1a')](_0x8a13('0x1c'),_0x31e2a5[_0x8a13('0x1b')],_0x31e2a5['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x35b8bb(_0x647340);});}else{return _0x35b8bb(null,_0x4dc300);}}}});};