Built motion from commit 9d0783e6.|2.6.13
[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 _0xc79d=['refreshToken','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intZohoAccount.attributes','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','substring','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','clientSecret','code','application/x-www-form-urlencoded','refresh_token','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','format','inspect','catch','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','host','slice','lastIndexOf','authorization_code','parse'];(function(_0x45783c,_0x49c56d){var _0x1161da=function(_0x3c5d41){while(--_0x3c5d41){_0x45783c['push'](_0x45783c['shift']());}};_0x1161da(++_0x49c56d);}(_0xc79d,0x1af));var _0xdc79=function(_0x29f3b0,_0xa83012){_0x29f3b0=_0x29f3b0-0x0;var _0x379f39=_0xc79d[_0x29f3b0];return _0x379f39;};'use strict';var _=require(_0xdc79('0x0'));var util=require(_0xdc79('0x1'));var logger=require(_0xdc79('0x2'))(_0xdc79('0x3'));var moment=require(_0xdc79('0x4'));var BPromise=require(_0xdc79('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xdc79('0x6'));var rimraf=require(_0xdc79('0x7'));var config=require(_0xdc79('0x8'));var attributes=require(_0xdc79('0x9'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x4670ef,_0x51b700){return _0x4670ef[_0xdc79('0xa')](_0xdc79('0xb'),attributes,{'tableName':_0xdc79('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x1e0df1,_0x33ccf7,_0x3f5a65){if(_0x1e0df1[_0xdc79('0xd')](_0xdc79('0xe'))||_0x1e0df1['changed'](_0xdc79('0xf'))||_0x1e0df1[_0xdc79('0xd')](_0xdc79('0x10'))||_0x1e0df1[_0xdc79('0xd')]('clientSecret')||_0x1e0df1[_0xdc79('0xd')]('code')||_0x1e0df1['changed']('host')){var _0x55717e,_0x56c6c7;_0x55717e=_0x1e0df1[_0xdc79('0xf')];var _0x1a0bc2=_0x55717e['slice'](-0x1);if(_0x1a0bc2==='/'||_0x1a0bc2==='\x5c'||_0x1a0bc2===':'){_0x55717e=_0x55717e[_0xdc79('0x11')](0x0,_0x55717e['lastIndexOf'](_0x1a0bc2));}switch(_0x1e0df1[_0xdc79('0xe')]){case'US':_0x56c6c7=_0xdc79('0x12');break;case'AU':_0x56c6c7=_0xdc79('0x13');break;case'IN':_0x56c6c7=_0xdc79('0x14');break;case'CN':_0x56c6c7=_0xdc79('0x15');break;default:_0x56c6c7=_0xdc79('0x16');break;}var _0x1d2745={'method':_0xdc79('0x17'),'uri':_0x56c6c7+_0xdc79('0x18'),'form':{'grant_type':'authorization_code','client_id':_0x1e0df1[_0xdc79('0x10')],'client_secret':_0x1e0df1[_0xdc79('0x19')],'redirect_uri':_0x1e0df1['serverUrl'],'code':_0x1e0df1[_0xdc79('0x1a')]},'headers':{'Content-Type':_0xdc79('0x1b')}};return rp(_0x1d2745)['then'](function(_0x3fab89){var _0x5d7b2d=JSON['parse'](_0x3fab89);if(_0x5d7b2d[_0xdc79('0x1c')]){_0x1e0df1['refreshToken']=_0x5d7b2d[_0xdc79('0x1c')];logger[_0xdc79('0x1d')](util['format'](_0xdc79('0x1e'),_0x1e0df1[_0xdc79('0x1f')],_0x1e0df1['id']));}else{logger['error'](util[_0xdc79('0x20')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1e0df1['name'],_0x1e0df1['id']),util[_0xdc79('0x21')](_0x5d7b2d,{'showHidden':![],'depth':null}));}return _0x3f5a65(null,_0x33ccf7);})[_0xdc79('0x22')](function(_0x3334e1){logger[_0xdc79('0x23')](util[_0xdc79('0x20')](_0xdc79('0x24'),_0x1e0df1['name'],_0x1e0df1['id']),util[_0xdc79('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x3f5a65(_0x3334e1);});}else{return _0x3f5a65(null,_0x33ccf7);}},'beforeUpdate':function(_0x498e56,_0x2d04ee,_0x2df702){if(_0x498e56[_0xdc79('0xd')]('zone')||_0x498e56['changed'](_0xdc79('0xf'))||_0x498e56[_0xdc79('0xd')]('clientId')||_0x498e56[_0xdc79('0xd')](_0xdc79('0x19'))||_0x498e56['changed'](_0xdc79('0x1a'))||_0x498e56[_0xdc79('0xd')](_0xdc79('0x25'))){var _0x1bd9f4,_0x85e335;_0x1bd9f4=_0x498e56[_0xdc79('0xf')];var _0x24cc2d=_0x1bd9f4[_0xdc79('0x26')](-0x1);if(_0x24cc2d==='/'||_0x24cc2d==='\x5c'||_0x24cc2d===':'){_0x1bd9f4=_0x1bd9f4[_0xdc79('0x11')](0x0,_0x1bd9f4[_0xdc79('0x27')](_0x24cc2d));}switch(_0x498e56['zone']){case'US':_0x85e335='https://accounts.zoho.com';break;case'AU':_0x85e335=_0xdc79('0x13');break;case'IN':_0x85e335=_0xdc79('0x14');break;case'CN':_0x85e335=_0xdc79('0x15');break;default:_0x85e335='https://accounts.zoho.eu';break;}var _0xea2ea1={'method':_0xdc79('0x17'),'uri':_0x85e335+_0xdc79('0x18'),'form':{'grant_type':_0xdc79('0x28'),'client_id':_0x498e56['clientId'],'client_secret':_0x498e56['clientSecret'],'redirect_uri':_0x498e56[_0xdc79('0xf')],'code':_0x498e56[_0xdc79('0x1a')]},'headers':{'Content-Type':_0xdc79('0x1b')}};return rp(_0xea2ea1)['then'](function(_0x379495){var _0xde7d59=JSON[_0xdc79('0x29')](_0x379495);if(_0xde7d59[_0xdc79('0x1c')]){_0x498e56[_0xdc79('0x2a')]=_0xde7d59[_0xdc79('0x1c')];logger[_0xdc79('0x1d')](util[_0xdc79('0x20')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x498e56[_0xdc79('0x1f')],_0x498e56['id']));}else{logger[_0xdc79('0x23')](util['format'](_0xdc79('0x24'),_0x498e56[_0xdc79('0x1f')],_0x498e56['id']),util['inspect'](_0xde7d59,{'showHidden':![],'depth':null}));}return _0x2df702(null,_0x2d04ee);})[_0xdc79('0x22')](function(_0x41fa24){logger[_0xdc79('0x23')](util['format'](_0xdc79('0x24'),_0x498e56[_0xdc79('0x1f')],_0x498e56['id']),util[_0xdc79('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x2df702(_0x41fa24);});}else{return _0x2df702(null,_0x2d04ee);}}}});};