2fcd5e4acf1870c76c2c68e6cb98c4edce8c4fdf
[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 _0x6860=['https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','serverUrl','application/x-www-form-urlencoded','then','parse','refresh_token','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','inspect','https://accounts.zoho.in','POST','refreshToken','info','lodash','../../config/logger','moment','request-promise','path','../../config/environment','exports','ZohoAccount','int_zoho_accounts','zone','changed','clientId','clientSecret','code','host','substring','lastIndexOf'];(function(_0x4233a2,_0x478e28){var _0x1c420e=function(_0x10b59e){while(--_0x10b59e){_0x4233a2['push'](_0x4233a2['shift']());}};_0x1c420e(++_0x478e28);}(_0x6860,0x1d0));var _0x0686=function(_0x596de6,_0x5cfb42){_0x596de6=_0x596de6-0x0;var _0x785d0a=_0x6860[_0x596de6];return _0x785d0a;};'use strict';var _=require(_0x0686('0x0'));var util=require('util');var logger=require(_0x0686('0x1'))('api');var moment=require(_0x0686('0x2'));var BPromise=require('bluebird');var rp=require(_0x0686('0x3'));var fs=require('fs');var path=require(_0x0686('0x4'));var rimraf=require('rimraf');var config=require(_0x0686('0x5'));var attributes=require('./intZohoAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0x0686('0x6')]=function(_0x357d41,_0x24ec8c){return _0x357d41['define'](_0x0686('0x7'),attributes,{'tableName':_0x0686('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x4710ad,_0x239ed1,_0x334aa9){if(_0x4710ad['changed'](_0x0686('0x9'))||_0x4710ad['changed']('serverUrl')||_0x4710ad[_0x0686('0xa')](_0x0686('0xb'))||_0x4710ad[_0x0686('0xa')](_0x0686('0xc'))||_0x4710ad['changed'](_0x0686('0xd'))||_0x4710ad[_0x0686('0xa')](_0x0686('0xe'))){var _0x4b2ea7,_0x26d96b;_0x4b2ea7=_0x4710ad['serverUrl'];var _0x518f79=_0x4b2ea7['slice'](-0x1);if(_0x518f79==='/'||_0x518f79==='\x5c'||_0x518f79===':'){_0x4b2ea7=_0x4b2ea7[_0x0686('0xf')](0x0,_0x4b2ea7[_0x0686('0x10')](_0x518f79));}switch(_0x4710ad['zone']){case'US':_0x26d96b='https://accounts.zoho.com';break;case'AU':_0x26d96b=_0x0686('0x11');break;case'IN':_0x26d96b='https://accounts.zoho.in';break;case'CN':_0x26d96b=_0x0686('0x12');break;default:_0x26d96b=_0x0686('0x13');break;}var _0x2a7fe3={'method':'POST','uri':_0x26d96b+_0x0686('0x14'),'form':{'grant_type':'authorization_code','client_id':_0x4710ad[_0x0686('0xb')],'client_secret':_0x4710ad[_0x0686('0xc')],'redirect_uri':_0x4710ad[_0x0686('0x15')],'code':_0x4710ad[_0x0686('0xd')]},'headers':{'Content-Type':_0x0686('0x16')}};return rp(_0x2a7fe3)[_0x0686('0x17')](function(_0x247486){var _0x18b7b9=JSON[_0x0686('0x18')](_0x247486);if(_0x18b7b9[_0x0686('0x19')]){_0x4710ad['refreshToken']=_0x18b7b9[_0x0686('0x19')];logger['info'](util[_0x0686('0x1a')](_0x0686('0x1b'),_0x4710ad[_0x0686('0x1c')],_0x4710ad['id']));}else{logger[_0x0686('0x1d')](util[_0x0686('0x1a')](_0x0686('0x1e'),_0x4710ad[_0x0686('0x1c')],_0x4710ad['id']),util['inspect'](_0x18b7b9,{'showHidden':![],'depth':null}));}return _0x334aa9(null,_0x239ed1);})[_0x0686('0x1f')](function(_0x54a404){logger[_0x0686('0x1d')](util[_0x0686('0x1a')](_0x0686('0x1e'),_0x4710ad[_0x0686('0x1c')],_0x4710ad['id']),util[_0x0686('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x334aa9(_0x54a404);});}else{return _0x334aa9(null,_0x239ed1);}},'beforeUpdate':function(_0x1b6ecd,_0x19eab7,_0x3a0e7a){if(_0x1b6ecd[_0x0686('0xa')]('zone')||_0x1b6ecd['changed'](_0x0686('0x15'))||_0x1b6ecd['changed']('clientId')||_0x1b6ecd['changed'](_0x0686('0xc'))||_0x1b6ecd['changed']('code')||_0x1b6ecd[_0x0686('0xa')](_0x0686('0xe'))){var _0x434772,_0x4a732b;_0x434772=_0x1b6ecd[_0x0686('0x15')];var _0x51590a=_0x434772['slice'](-0x1);if(_0x51590a==='/'||_0x51590a==='\x5c'||_0x51590a===':'){_0x434772=_0x434772[_0x0686('0xf')](0x0,_0x434772[_0x0686('0x10')](_0x51590a));}switch(_0x1b6ecd[_0x0686('0x9')]){case'US':_0x4a732b='https://accounts.zoho.com';break;case'AU':_0x4a732b=_0x0686('0x11');break;case'IN':_0x4a732b=_0x0686('0x21');break;case'CN':_0x4a732b=_0x0686('0x12');break;default:_0x4a732b=_0x0686('0x13');break;}var _0x5af7fb={'method':_0x0686('0x22'),'uri':_0x4a732b+_0x0686('0x14'),'form':{'grant_type':'authorization_code','client_id':_0x1b6ecd[_0x0686('0xb')],'client_secret':_0x1b6ecd[_0x0686('0xc')],'redirect_uri':_0x1b6ecd[_0x0686('0x15')],'code':_0x1b6ecd[_0x0686('0xd')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x5af7fb)[_0x0686('0x17')](function(_0x1fdbc7){var _0x451c67=JSON[_0x0686('0x18')](_0x1fdbc7);if(_0x451c67['refresh_token']){_0x1b6ecd[_0x0686('0x23')]=_0x451c67[_0x0686('0x19')];logger[_0x0686('0x24')](util[_0x0686('0x1a')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1b6ecd[_0x0686('0x1c')],_0x1b6ecd['id']));}else{logger[_0x0686('0x1d')](util[_0x0686('0x1a')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1b6ecd[_0x0686('0x1c')],_0x1b6ecd['id']),util[_0x0686('0x20')](_0x451c67,{'showHidden':![],'depth':null}));}return _0x3a0e7a(null,_0x19eab7);})[_0x0686('0x1f')](function(_0xd95ea){logger[_0x0686('0x1d')](util[_0x0686('0x1a')](_0x0686('0x1e'),_0x1b6ecd[_0x0686('0x1c')],_0x1b6ecd['id']),util[_0x0686('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x3a0e7a(_0xd95ea);});}else{return _0x3a0e7a(null,_0x19eab7);}}}});};