Built motion from commit f25620e4.|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 _0xdd18=['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','code','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','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','catch','host','slice','substring','lastIndexOf','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./intZohoAccount.attributes','exports','ZohoAccount','int_zoho_accounts','changed','serverUrl','clientSecret','zone'];(function(_0x2dd273,_0x4daf5c){var _0x1f3be3=function(_0x1f8a79){while(--_0x1f8a79){_0x2dd273['push'](_0x2dd273['shift']());}};_0x1f3be3(++_0x4daf5c);}(_0xdd18,0x1dd));var _0x8dd1=function(_0x534f4f,_0xd9e172){_0x534f4f=_0x534f4f-0x0;var _0x3aa387=_0xdd18[_0x534f4f];return _0x3aa387;};'use strict';var _=require('lodash');var util=require(_0x8dd1('0x0'));var logger=require(_0x8dd1('0x1'))(_0x8dd1('0x2'));var moment=require('moment');var BPromise=require(_0x8dd1('0x3'));var rp=require(_0x8dd1('0x4'));var fs=require('fs');var path=require(_0x8dd1('0x5'));var rimraf=require(_0x8dd1('0x6'));var config=require('../../config/environment');var attributes=require(_0x8dd1('0x7'));var integrations=require('../../components/integrations/configuration');module[_0x8dd1('0x8')]=function(_0x323148,_0x5f10fa){return _0x323148['define'](_0x8dd1('0x9'),attributes,{'tableName':_0x8dd1('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x29d210,_0x13162c,_0x528832){if(_0x29d210[_0x8dd1('0xb')]('zone')||_0x29d210[_0x8dd1('0xb')](_0x8dd1('0xc'))||_0x29d210[_0x8dd1('0xb')]('clientId')||_0x29d210[_0x8dd1('0xb')](_0x8dd1('0xd'))||_0x29d210[_0x8dd1('0xb')]('code')||_0x29d210[_0x8dd1('0xb')]('host')){var _0x403ed6,_0x1a3ab2;_0x403ed6=_0x29d210[_0x8dd1('0xc')];var _0x54b5ac=_0x403ed6['slice'](-0x1);if(_0x54b5ac==='/'||_0x54b5ac==='\x5c'||_0x54b5ac===':'){_0x403ed6=_0x403ed6['substring'](0x0,_0x403ed6['lastIndexOf'](_0x54b5ac));}switch(_0x29d210[_0x8dd1('0xe')]){case'US':_0x1a3ab2=_0x8dd1('0xf');break;case'AU':_0x1a3ab2=_0x8dd1('0x10');break;case'IN':_0x1a3ab2='https://accounts.zoho.in';break;case'CN':_0x1a3ab2=_0x8dd1('0x11');break;default:_0x1a3ab2=_0x8dd1('0x12');break;}var _0x4b7cbe={'method':_0x8dd1('0x13'),'uri':_0x1a3ab2+_0x8dd1('0x14'),'form':{'grant_type':_0x8dd1('0x15'),'client_id':_0x29d210[_0x8dd1('0x16')],'client_secret':_0x29d210[_0x8dd1('0xd')],'redirect_uri':_0x29d210[_0x8dd1('0xc')],'code':_0x29d210[_0x8dd1('0x17')]},'headers':{'Content-Type':_0x8dd1('0x18')}};return rp(_0x4b7cbe)[_0x8dd1('0x19')](function(_0x202dd4){var _0x26b72a=JSON[_0x8dd1('0x1a')](_0x202dd4);if(_0x26b72a[_0x8dd1('0x1b')]){_0x29d210[_0x8dd1('0x1c')]=_0x26b72a[_0x8dd1('0x1b')];logger[_0x8dd1('0x1d')](util[_0x8dd1('0x1e')](_0x8dd1('0x1f'),_0x29d210['name'],_0x29d210['id']));}else{logger[_0x8dd1('0x20')](util[_0x8dd1('0x1e')](_0x8dd1('0x21'),_0x29d210[_0x8dd1('0x22')],_0x29d210['id']),util[_0x8dd1('0x23')](_0x26b72a,{'showHidden':![],'depth':null}));}return _0x528832(null,_0x13162c);})[_0x8dd1('0x24')](function(_0x79acb){logger[_0x8dd1('0x20')](util[_0x8dd1('0x1e')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x29d210[_0x8dd1('0x22')],_0x29d210['id']),util[_0x8dd1('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x528832(_0x79acb);});}else{return _0x528832(null,_0x13162c);}},'beforeUpdate':function(_0x57c839,_0x384334,_0x18488d){if(_0x57c839[_0x8dd1('0xb')]('zone')||_0x57c839[_0x8dd1('0xb')](_0x8dd1('0xc'))||_0x57c839['changed'](_0x8dd1('0x16'))||_0x57c839['changed'](_0x8dd1('0xd'))||_0x57c839[_0x8dd1('0xb')]('code')||_0x57c839[_0x8dd1('0xb')](_0x8dd1('0x25'))){var _0x1f15af,_0xf9b133;_0x1f15af=_0x57c839['serverUrl'];var _0x221a88=_0x1f15af[_0x8dd1('0x26')](-0x1);if(_0x221a88==='/'||_0x221a88==='\x5c'||_0x221a88===':'){_0x1f15af=_0x1f15af[_0x8dd1('0x27')](0x0,_0x1f15af[_0x8dd1('0x28')](_0x221a88));}switch(_0x57c839['zone']){case'US':_0xf9b133=_0x8dd1('0xf');break;case'AU':_0xf9b133='https://accounts.zoho.com.au';break;case'IN':_0xf9b133='https://accounts.zoho.in';break;case'CN':_0xf9b133=_0x8dd1('0x11');break;default:_0xf9b133=_0x8dd1('0x12');break;}var _0x26dd6c={'method':_0x8dd1('0x13'),'uri':_0xf9b133+_0x8dd1('0x14'),'form':{'grant_type':_0x8dd1('0x15'),'client_id':_0x57c839['clientId'],'client_secret':_0x57c839[_0x8dd1('0xd')],'redirect_uri':_0x57c839['serverUrl'],'code':_0x57c839[_0x8dd1('0x17')]},'headers':{'Content-Type':_0x8dd1('0x18')}};return rp(_0x26dd6c)['then'](function(_0x7d132c){var _0x2e6b99=JSON[_0x8dd1('0x1a')](_0x7d132c);if(_0x2e6b99[_0x8dd1('0x1b')]){_0x57c839['refreshToken']=_0x2e6b99['refresh_token'];logger['info'](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x57c839['name'],_0x57c839['id']));}else{logger[_0x8dd1('0x20')](util[_0x8dd1('0x1e')](_0x8dd1('0x21'),_0x57c839[_0x8dd1('0x22')],_0x57c839['id']),util[_0x8dd1('0x23')](_0x2e6b99,{'showHidden':![],'depth':null}));}return _0x18488d(null,_0x384334);})[_0x8dd1('0x24')](function(_0x1a9497){logger[_0x8dd1('0x20')](util[_0x8dd1('0x1e')](_0x8dd1('0x21'),_0x57c839[_0x8dd1('0x22')],_0x57c839['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x18488d(_0x1a9497);});}else{return _0x18488d(null,_0x384334);}}}});};