Built motion from commit fd055180.|2.6.30
[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 _0x4c7e=['exports','define','ZohoAccount','int_zoho_accounts','changed','zone','clientId','code','serverUrl','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','clientSecret','host','/oauth/v2/token','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x234fc2,_0x485cee){var _0x1ddffd=function(_0x44f319){while(--_0x44f319){_0x234fc2['push'](_0x234fc2['shift']());}};_0x1ddffd(++_0x485cee);}(_0x4c7e,0x141));var _0xe4c7=function(_0x1bca2e,_0x2e5dbc){_0x1bca2e=_0x1bca2e-0x0;var _0x11ab8d=_0x4c7e[_0x1bca2e];return _0x11ab8d;};'use strict';var _=require(_0xe4c7('0x0'));var util=require('util');var logger=require(_0xe4c7('0x1'))(_0xe4c7('0x2'));var moment=require(_0xe4c7('0x3'));var BPromise=require(_0xe4c7('0x4'));var rp=require(_0xe4c7('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe4c7('0x6'));var config=require('../../config/environment');var attributes=require('./intZohoAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0xe4c7('0x7')]=function(_0x1e918d,_0x8624fd){return _0x1e918d[_0xe4c7('0x8')](_0xe4c7('0x9'),attributes,{'tableName':_0xe4c7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x5f1518,_0x4de83d,_0x33830d){if(_0x5f1518[_0xe4c7('0xb')](_0xe4c7('0xc'))||_0x5f1518[_0xe4c7('0xb')]('serverUrl')||_0x5f1518[_0xe4c7('0xb')](_0xe4c7('0xd'))||_0x5f1518[_0xe4c7('0xb')]('clientSecret')||_0x5f1518[_0xe4c7('0xb')](_0xe4c7('0xe'))||_0x5f1518[_0xe4c7('0xb')]('host')){var _0x323645,_0xd9581a;_0x323645=_0x5f1518[_0xe4c7('0xf')];var _0x508ed3=_0x323645[_0xe4c7('0x10')](-0x1);if(_0x508ed3==='/'||_0x508ed3==='\x5c'||_0x508ed3===':'){_0x323645=_0x323645[_0xe4c7('0x11')](0x0,_0x323645[_0xe4c7('0x12')](_0x508ed3));}switch(_0x5f1518[_0xe4c7('0xc')]){case'US':_0xd9581a=_0xe4c7('0x13');break;case'AU':_0xd9581a=_0xe4c7('0x14');break;case'IN':_0xd9581a=_0xe4c7('0x15');break;case'CN':_0xd9581a=_0xe4c7('0x16');break;default:_0xd9581a=_0xe4c7('0x17');break;}var _0x5e61cf={'method':_0xe4c7('0x18'),'uri':_0xd9581a+'/oauth/v2/token','form':{'grant_type':'authorization_code','client_id':_0x5f1518['clientId'],'client_secret':_0x5f1518['clientSecret'],'redirect_uri':_0x5f1518[_0xe4c7('0xf')],'code':_0x5f1518[_0xe4c7('0xe')]},'headers':{'Content-Type':_0xe4c7('0x19')}};return rp(_0x5e61cf)[_0xe4c7('0x1a')](function(_0x13caf3){var _0x344533=JSON[_0xe4c7('0x1b')](_0x13caf3);if(_0x344533[_0xe4c7('0x1c')]){_0x5f1518[_0xe4c7('0x1d')]=_0x344533[_0xe4c7('0x1c')];logger[_0xe4c7('0x1e')](util[_0xe4c7('0x1f')](_0xe4c7('0x20'),_0x5f1518[_0xe4c7('0x21')],_0x5f1518['id']));}else{logger[_0xe4c7('0x22')](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x5f1518[_0xe4c7('0x21')],_0x5f1518['id']),util['inspect'](_0x344533,{'showHidden':![],'depth':null}));}return _0x33830d(null,_0x4de83d);})[_0xe4c7('0x23')](function(_0x4dd62f){logger[_0xe4c7('0x22')](util['format'](_0xe4c7('0x24'),_0x5f1518[_0xe4c7('0x21')],_0x5f1518['id']),util[_0xe4c7('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x33830d(_0x4dd62f);});}else{return _0x33830d(null,_0x4de83d);}},'beforeUpdate':function(_0x2d0346,_0x388447,_0xa2c12d){if(_0x2d0346[_0xe4c7('0xb')](_0xe4c7('0xc'))||_0x2d0346[_0xe4c7('0xb')]('serverUrl')||_0x2d0346[_0xe4c7('0xb')](_0xe4c7('0xd'))||_0x2d0346['changed'](_0xe4c7('0x26'))||_0x2d0346['changed'](_0xe4c7('0xe'))||_0x2d0346['changed'](_0xe4c7('0x27'))){var _0xf562a1,_0x483752;_0xf562a1=_0x2d0346[_0xe4c7('0xf')];var _0x52ce5c=_0xf562a1[_0xe4c7('0x10')](-0x1);if(_0x52ce5c==='/'||_0x52ce5c==='\x5c'||_0x52ce5c===':'){_0xf562a1=_0xf562a1[_0xe4c7('0x11')](0x0,_0xf562a1[_0xe4c7('0x12')](_0x52ce5c));}switch(_0x2d0346['zone']){case'US':_0x483752=_0xe4c7('0x13');break;case'AU':_0x483752=_0xe4c7('0x14');break;case'IN':_0x483752=_0xe4c7('0x15');break;case'CN':_0x483752='https://accounts.zoho.com.cn';break;default:_0x483752=_0xe4c7('0x17');break;}var _0x58d69c={'method':'POST','uri':_0x483752+_0xe4c7('0x28'),'form':{'grant_type':'authorization_code','client_id':_0x2d0346[_0xe4c7('0xd')],'client_secret':_0x2d0346[_0xe4c7('0x26')],'redirect_uri':_0x2d0346[_0xe4c7('0xf')],'code':_0x2d0346[_0xe4c7('0xe')]},'headers':{'Content-Type':_0xe4c7('0x19')}};return rp(_0x58d69c)[_0xe4c7('0x1a')](function(_0x4cea6e){var _0x184cfd=JSON[_0xe4c7('0x1b')](_0x4cea6e);if(_0x184cfd[_0xe4c7('0x1c')]){_0x2d0346[_0xe4c7('0x1d')]=_0x184cfd['refresh_token'];logger[_0xe4c7('0x1e')](util[_0xe4c7('0x1f')](_0xe4c7('0x20'),_0x2d0346[_0xe4c7('0x21')],_0x2d0346['id']));}else{logger[_0xe4c7('0x22')](util[_0xe4c7('0x1f')](_0xe4c7('0x24'),_0x2d0346[_0xe4c7('0x21')],_0x2d0346['id']),util[_0xe4c7('0x25')](_0x184cfd,{'showHidden':![],'depth':null}));}return _0xa2c12d(null,_0x388447);})[_0xe4c7('0x23')](function(_0x54d982){logger['error'](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x2d0346['name'],_0x2d0346['id']),util[_0xe4c7('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0xa2c12d(_0x54d982);});}else{return _0xa2c12d(null,_0x388447);}}}});};