Built motion from commit 497d3d92.|2.5.43
[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 _0x99b6=['slice','https://accounts.zoho.com.au','/oauth/v2/token','then','lodash','util','../../config/logger','api','moment','path','rimraf','./intZohoAccount.attributes','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','code','host','serverUrl','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','clientId','application/x-www-form-urlencoded','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','inspect','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','clientSecret'];(function(_0x46e5fc,_0x5db9aa){var _0x52f4e6=function(_0x51a00){while(--_0x51a00){_0x46e5fc['push'](_0x46e5fc['shift']());}};_0x52f4e6(++_0x5db9aa);}(_0x99b6,0xfa));var _0x699b=function(_0x5147ab,_0x29fab0){_0x5147ab=_0x5147ab-0x0;var _0x5b3c32=_0x99b6[_0x5147ab];return _0x5b3c32;};'use strict';var _=require(_0x699b('0x0'));var util=require(_0x699b('0x1'));var logger=require(_0x699b('0x2'))(_0x699b('0x3'));var moment=require(_0x699b('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x699b('0x5'));var rimraf=require(_0x699b('0x6'));var config=require('../../config/environment');var attributes=require(_0x699b('0x7'));var integrations=require('../../components/integrations/configuration');module[_0x699b('0x8')]=function(_0x4598d3,_0xf046f1){return _0x4598d3[_0x699b('0x9')](_0x699b('0xa'),attributes,{'tableName':_0x699b('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x235c2d,_0x3907d3,_0x2a7e77){if(_0x235c2d[_0x699b('0xc')](_0x699b('0xd'))||_0x235c2d[_0x699b('0xc')]('serverUrl')||_0x235c2d[_0x699b('0xc')]('clientId')||_0x235c2d[_0x699b('0xc')]('clientSecret')||_0x235c2d[_0x699b('0xc')](_0x699b('0xe'))||_0x235c2d['changed'](_0x699b('0xf'))){var _0x3e7c00,_0x4dc98f;_0x3e7c00=_0x235c2d[_0x699b('0x10')];var _0x34cb72=_0x3e7c00['slice'](-0x1);if(_0x34cb72==='/'||_0x34cb72==='\x5c'||_0x34cb72===':'){_0x3e7c00=_0x3e7c00['substring'](0x0,_0x3e7c00[_0x699b('0x11')](_0x34cb72));}switch(_0x235c2d['zone']){case'US':_0x4dc98f=_0x699b('0x12');break;case'AU':_0x4dc98f='https://accounts.zoho.com.au';break;case'IN':_0x4dc98f=_0x699b('0x13');break;case'CN':_0x4dc98f=_0x699b('0x14');break;default:_0x4dc98f=_0x699b('0x15');break;}var _0x37abc6={'method':_0x699b('0x16'),'uri':_0x4dc98f+'/oauth/v2/token','form':{'grant_type':'authorization_code','client_id':_0x235c2d[_0x699b('0x17')],'client_secret':_0x235c2d['clientSecret'],'redirect_uri':_0x235c2d[_0x699b('0x10')],'code':_0x235c2d['code']},'headers':{'Content-Type':_0x699b('0x18')}};return rp(_0x37abc6)['then'](function(_0x336ed0){var _0x1eef8c=JSON[_0x699b('0x19')](_0x336ed0);if(_0x1eef8c[_0x699b('0x1a')]){_0x235c2d[_0x699b('0x1b')]=_0x1eef8c[_0x699b('0x1a')];logger[_0x699b('0x1c')](util[_0x699b('0x1d')](_0x699b('0x1e'),_0x235c2d[_0x699b('0x1f')],_0x235c2d['id']));}else{logger[_0x699b('0x20')](util[_0x699b('0x1d')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x235c2d['name'],_0x235c2d['id']),util[_0x699b('0x21')](_0x1eef8c,{'showHidden':![],'depth':null}));}return _0x2a7e77(null,_0x3907d3);})[_0x699b('0x22')](function(_0x2f5cc5){logger['error'](util['format'](_0x699b('0x23'),_0x235c2d['name'],_0x235c2d['id']),util[_0x699b('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x2a7e77(_0x2f5cc5);});}else{return _0x2a7e77(null,_0x3907d3);}},'beforeUpdate':function(_0x10a619,_0x9e2bf9,_0x36ad29){if(_0x10a619[_0x699b('0xc')](_0x699b('0xd'))||_0x10a619[_0x699b('0xc')](_0x699b('0x10'))||_0x10a619[_0x699b('0xc')](_0x699b('0x17'))||_0x10a619[_0x699b('0xc')](_0x699b('0x24'))||_0x10a619[_0x699b('0xc')](_0x699b('0xe'))||_0x10a619[_0x699b('0xc')]('host')){var _0x422bb2,_0xbc3fb5;_0x422bb2=_0x10a619[_0x699b('0x10')];var _0x3f8cbc=_0x422bb2[_0x699b('0x25')](-0x1);if(_0x3f8cbc==='/'||_0x3f8cbc==='\x5c'||_0x3f8cbc===':'){_0x422bb2=_0x422bb2['substring'](0x0,_0x422bb2[_0x699b('0x11')](_0x3f8cbc));}switch(_0x10a619[_0x699b('0xd')]){case'US':_0xbc3fb5=_0x699b('0x12');break;case'AU':_0xbc3fb5=_0x699b('0x26');break;case'IN':_0xbc3fb5=_0x699b('0x13');break;case'CN':_0xbc3fb5='https://accounts.zoho.com.cn';break;default:_0xbc3fb5=_0x699b('0x15');break;}var _0x13ef9e={'method':_0x699b('0x16'),'uri':_0xbc3fb5+_0x699b('0x27'),'form':{'grant_type':'authorization_code','client_id':_0x10a619['clientId'],'client_secret':_0x10a619['clientSecret'],'redirect_uri':_0x10a619['serverUrl'],'code':_0x10a619['code']},'headers':{'Content-Type':_0x699b('0x18')}};return rp(_0x13ef9e)[_0x699b('0x28')](function(_0x496bcb){var _0x13b506=JSON[_0x699b('0x19')](_0x496bcb);if(_0x13b506[_0x699b('0x1a')]){_0x10a619[_0x699b('0x1b')]=_0x13b506[_0x699b('0x1a')];logger['info'](util[_0x699b('0x1d')](_0x699b('0x1e'),_0x10a619[_0x699b('0x1f')],_0x10a619['id']));}else{logger['error'](util[_0x699b('0x1d')](_0x699b('0x23'),_0x10a619['name'],_0x10a619['id']),util['inspect'](_0x13b506,{'showHidden':![],'depth':null}));}return _0x36ad29(null,_0x9e2bf9);})[_0x699b('0x22')](function(_0x2483f0){logger[_0x699b('0x20')](util[_0x699b('0x1d')](_0x699b('0x23'),_0x10a619['name'],_0x10a619['id']),util[_0x699b('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x36ad29(_0x2483f0);});}else{return _0x36ad29(null,_0x9e2bf9);}}}});};