Built motion from commit ffdca78c.|2.6.24
[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 _0x4f1d=['refresh_token','refreshToken','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','host','https://accounts.zoho.com.au','parse','inspect','lodash','bluebird','rimraf','../../config/environment','../../components/integrations/configuration','exports','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientSecret','code','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','clientId','application/x-www-form-urlencoded','then'];(function(_0x4ac95c,_0x2719c0){var _0x327a6e=function(_0x241e5e){while(--_0x241e5e){_0x4ac95c['push'](_0x4ac95c['shift']());}};_0x327a6e(++_0x2719c0);}(_0x4f1d,0xf7));var _0xd4f1=function(_0x26a4ea,_0xa72fb8){_0x26a4ea=_0x26a4ea-0x0;var _0x1b669e=_0x4f1d[_0x26a4ea];return _0x1b669e;};'use strict';var _=require(_0xd4f1('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xd4f1('0x1'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xd4f1('0x2'));var config=require(_0xd4f1('0x3'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0xd4f1('0x4'));module[_0xd4f1('0x5')]=function(_0x5e4063,_0x1e620f){return _0x5e4063['define'](_0xd4f1('0x6'),attributes,{'tableName':_0xd4f1('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x270f5e,_0x226b1a,_0x1415b3){if(_0x270f5e[_0xd4f1('0x8')](_0xd4f1('0x9'))||_0x270f5e[_0xd4f1('0x8')](_0xd4f1('0xa'))||_0x270f5e[_0xd4f1('0x8')]('clientId')||_0x270f5e[_0xd4f1('0x8')](_0xd4f1('0xb'))||_0x270f5e[_0xd4f1('0x8')](_0xd4f1('0xc'))||_0x270f5e['changed']('host')){var _0x210fd1,_0x1f27b3;_0x210fd1=_0x270f5e['serverUrl'];var _0x970af4=_0x210fd1[_0xd4f1('0xd')](-0x1);if(_0x970af4==='/'||_0x970af4==='\x5c'||_0x970af4===':'){_0x210fd1=_0x210fd1[_0xd4f1('0xe')](0x0,_0x210fd1[_0xd4f1('0xf')](_0x970af4));}switch(_0x270f5e[_0xd4f1('0x9')]){case'US':_0x1f27b3=_0xd4f1('0x10');break;case'AU':_0x1f27b3='https://accounts.zoho.com.au';break;case'IN':_0x1f27b3=_0xd4f1('0x11');break;case'CN':_0x1f27b3=_0xd4f1('0x12');break;default:_0x1f27b3=_0xd4f1('0x13');break;}var _0x49ac0b={'method':_0xd4f1('0x14'),'uri':_0x1f27b3+_0xd4f1('0x15'),'form':{'grant_type':_0xd4f1('0x16'),'client_id':_0x270f5e[_0xd4f1('0x17')],'client_secret':_0x270f5e[_0xd4f1('0xb')],'redirect_uri':_0x270f5e['serverUrl'],'code':_0x270f5e[_0xd4f1('0xc')]},'headers':{'Content-Type':_0xd4f1('0x18')}};return rp(_0x49ac0b)[_0xd4f1('0x19')](function(_0x3793cb){var _0x14fadf=JSON['parse'](_0x3793cb);if(_0x14fadf[_0xd4f1('0x1a')]){_0x270f5e[_0xd4f1('0x1b')]=_0x14fadf[_0xd4f1('0x1a')];logger[_0xd4f1('0x1c')](util['format'](_0xd4f1('0x1d'),_0x270f5e[_0xd4f1('0x1e')],_0x270f5e['id']));}else{logger[_0xd4f1('0x1f')](util[_0xd4f1('0x20')](_0xd4f1('0x21'),_0x270f5e[_0xd4f1('0x1e')],_0x270f5e['id']),util['inspect'](_0x14fadf,{'showHidden':![],'depth':null}));}return _0x1415b3(null,_0x226b1a);})[_0xd4f1('0x22')](function(_0xf9f714){logger[_0xd4f1('0x1f')](util[_0xd4f1('0x20')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x270f5e['name'],_0x270f5e['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x1415b3(_0xf9f714);});}else{return _0x1415b3(null,_0x226b1a);}},'beforeUpdate':function(_0x3b31bd,_0x24d692,_0x485e1f){if(_0x3b31bd['changed'](_0xd4f1('0x9'))||_0x3b31bd[_0xd4f1('0x8')](_0xd4f1('0xa'))||_0x3b31bd[_0xd4f1('0x8')](_0xd4f1('0x17'))||_0x3b31bd[_0xd4f1('0x8')](_0xd4f1('0xb'))||_0x3b31bd[_0xd4f1('0x8')](_0xd4f1('0xc'))||_0x3b31bd[_0xd4f1('0x8')](_0xd4f1('0x23'))){var _0x183e75,_0x349552;_0x183e75=_0x3b31bd[_0xd4f1('0xa')];var _0x535901=_0x183e75[_0xd4f1('0xd')](-0x1);if(_0x535901==='/'||_0x535901==='\x5c'||_0x535901===':'){_0x183e75=_0x183e75[_0xd4f1('0xe')](0x0,_0x183e75[_0xd4f1('0xf')](_0x535901));}switch(_0x3b31bd[_0xd4f1('0x9')]){case'US':_0x349552=_0xd4f1('0x10');break;case'AU':_0x349552=_0xd4f1('0x24');break;case'IN':_0x349552=_0xd4f1('0x11');break;case'CN':_0x349552='https://accounts.zoho.com.cn';break;default:_0x349552=_0xd4f1('0x13');break;}var _0x59bf0b={'method':_0xd4f1('0x14'),'uri':_0x349552+'/oauth/v2/token','form':{'grant_type':_0xd4f1('0x16'),'client_id':_0x3b31bd[_0xd4f1('0x17')],'client_secret':_0x3b31bd['clientSecret'],'redirect_uri':_0x3b31bd[_0xd4f1('0xa')],'code':_0x3b31bd[_0xd4f1('0xc')]},'headers':{'Content-Type':_0xd4f1('0x18')}};return rp(_0x59bf0b)[_0xd4f1('0x19')](function(_0x3e1abd){var _0x3e2870=JSON[_0xd4f1('0x25')](_0x3e1abd);if(_0x3e2870[_0xd4f1('0x1a')]){_0x3b31bd['refreshToken']=_0x3e2870[_0xd4f1('0x1a')];logger[_0xd4f1('0x1c')](util[_0xd4f1('0x20')](_0xd4f1('0x1d'),_0x3b31bd[_0xd4f1('0x1e')],_0x3b31bd['id']));}else{logger[_0xd4f1('0x1f')](util[_0xd4f1('0x20')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x3b31bd['name'],_0x3b31bd['id']),util[_0xd4f1('0x26')](_0x3e2870,{'showHidden':![],'depth':null}));}return _0x485e1f(null,_0x24d692);})[_0xd4f1('0x22')](function(_0x5477c3){logger[_0xd4f1('0x1f')](util['format'](_0xd4f1('0x21'),_0x3b31bd[_0xd4f1('0x1e')],_0x3b31bd['id']),util[_0xd4f1('0x26')](parsedResult,{'showHidden':![],'depth':null}));return _0x485e1f(_0x5477c3);});}else{return _0x485e1f(null,_0x24d692);}}}});};