14fa75532557ed6e578f6091b1919bad8733bc02
[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 _0x7037=['code','host','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','clientId','application/x-www-form-urlencoded','then','refresh_token','refreshToken','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','catch','inspect','https://accounts.zoho.in','parse','util','moment','bluebird','request-promise','path','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientSecret'];(function(_0x4ec861,_0x14196b){var _0x23420d=function(_0x267b0e){while(--_0x267b0e){_0x4ec861['push'](_0x4ec861['shift']());}};_0x23420d(++_0x14196b);}(_0x7037,0xed));var _0x7703=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0x7037[_0x1cc8fe];return _0x230054;};'use strict';var _=require('lodash');var util=require(_0x7703('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x7703('0x1'));var BPromise=require(_0x7703('0x2'));var rp=require(_0x7703('0x3'));var fs=require('fs');var path=require(_0x7703('0x4'));var rimraf=require('rimraf');var config=require(_0x7703('0x5'));var attributes=require(_0x7703('0x6'));var integrations=require(_0x7703('0x7'));module[_0x7703('0x8')]=function(_0x543657,_0x36e3b1){return _0x543657['define'](_0x7703('0x9'),attributes,{'tableName':_0x7703('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x837bc8,_0x20cc26,_0x50286a){if(_0x837bc8[_0x7703('0xb')](_0x7703('0xc'))||_0x837bc8[_0x7703('0xb')](_0x7703('0xd'))||_0x837bc8[_0x7703('0xb')]('clientId')||_0x837bc8[_0x7703('0xb')](_0x7703('0xe'))||_0x837bc8[_0x7703('0xb')](_0x7703('0xf'))||_0x837bc8[_0x7703('0xb')](_0x7703('0x10'))){var _0x468dac,_0x81ca2f;_0x468dac=_0x837bc8['serverUrl'];var _0xa16d60=_0x468dac[_0x7703('0x11')](-0x1);if(_0xa16d60==='/'||_0xa16d60==='\x5c'||_0xa16d60===':'){_0x468dac=_0x468dac[_0x7703('0x12')](0x0,_0x468dac[_0x7703('0x13')](_0xa16d60));}switch(_0x837bc8['zone']){case'US':_0x81ca2f=_0x7703('0x14');break;case'AU':_0x81ca2f=_0x7703('0x15');break;case'IN':_0x81ca2f='https://accounts.zoho.in';break;case'CN':_0x81ca2f=_0x7703('0x16');break;default:_0x81ca2f=_0x7703('0x17');break;}var _0x47b715={'method':_0x7703('0x18'),'uri':_0x81ca2f+_0x7703('0x19'),'form':{'grant_type':_0x7703('0x1a'),'client_id':_0x837bc8[_0x7703('0x1b')],'client_secret':_0x837bc8[_0x7703('0xe')],'redirect_uri':_0x837bc8[_0x7703('0xd')],'code':_0x837bc8[_0x7703('0xf')]},'headers':{'Content-Type':_0x7703('0x1c')}};return rp(_0x47b715)[_0x7703('0x1d')](function(_0x564620){var _0x5147a7=JSON['parse'](_0x564620);if(_0x5147a7[_0x7703('0x1e')]){_0x837bc8[_0x7703('0x1f')]=_0x5147a7[_0x7703('0x1e')];logger[_0x7703('0x20')](util['format'](_0x7703('0x21'),_0x837bc8['name'],_0x837bc8['id']));}else{logger[_0x7703('0x22')](util[_0x7703('0x23')](_0x7703('0x24'),_0x837bc8[_0x7703('0x25')],_0x837bc8['id']),util['inspect'](_0x5147a7,{'showHidden':![],'depth':null}));}return _0x50286a(null,_0x20cc26);})[_0x7703('0x26')](function(_0x4ed328){logger[_0x7703('0x22')](util[_0x7703('0x23')](_0x7703('0x24'),_0x837bc8[_0x7703('0x25')],_0x837bc8['id']),util[_0x7703('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x50286a(_0x4ed328);});}else{return _0x50286a(null,_0x20cc26);}},'beforeUpdate':function(_0x4449c4,_0x1c51f2,_0x122512){if(_0x4449c4[_0x7703('0xb')](_0x7703('0xc'))||_0x4449c4[_0x7703('0xb')](_0x7703('0xd'))||_0x4449c4['changed'](_0x7703('0x1b'))||_0x4449c4[_0x7703('0xb')](_0x7703('0xe'))||_0x4449c4[_0x7703('0xb')](_0x7703('0xf'))||_0x4449c4[_0x7703('0xb')](_0x7703('0x10'))){var _0x4ecf42,_0x16e59b;_0x4ecf42=_0x4449c4[_0x7703('0xd')];var _0x588e09=_0x4ecf42[_0x7703('0x11')](-0x1);if(_0x588e09==='/'||_0x588e09==='\x5c'||_0x588e09===':'){_0x4ecf42=_0x4ecf42[_0x7703('0x12')](0x0,_0x4ecf42['lastIndexOf'](_0x588e09));}switch(_0x4449c4[_0x7703('0xc')]){case'US':_0x16e59b=_0x7703('0x14');break;case'AU':_0x16e59b='https://accounts.zoho.com.au';break;case'IN':_0x16e59b=_0x7703('0x28');break;case'CN':_0x16e59b='https://accounts.zoho.com.cn';break;default:_0x16e59b=_0x7703('0x17');break;}var _0x43361a={'method':'POST','uri':_0x16e59b+_0x7703('0x19'),'form':{'grant_type':'authorization_code','client_id':_0x4449c4['clientId'],'client_secret':_0x4449c4[_0x7703('0xe')],'redirect_uri':_0x4449c4['serverUrl'],'code':_0x4449c4[_0x7703('0xf')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x43361a)[_0x7703('0x1d')](function(_0x3e31b0){var _0x39d3e6=JSON[_0x7703('0x29')](_0x3e31b0);if(_0x39d3e6[_0x7703('0x1e')]){_0x4449c4[_0x7703('0x1f')]=_0x39d3e6[_0x7703('0x1e')];logger[_0x7703('0x20')](util[_0x7703('0x23')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4449c4[_0x7703('0x25')],_0x4449c4['id']));}else{logger[_0x7703('0x22')](util[_0x7703('0x23')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4449c4['name'],_0x4449c4['id']),util[_0x7703('0x27')](_0x39d3e6,{'showHidden':![],'depth':null}));}return _0x122512(null,_0x1c51f2);})[_0x7703('0x26')](function(_0x29ba91){logger[_0x7703('0x22')](util[_0x7703('0x23')](_0x7703('0x24'),_0x4449c4[_0x7703('0x25')],_0x4449c4['id']),util[_0x7703('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x122512(_0x29ba91);});}else{return _0x122512(null,_0x1c51f2);}}}});};