Built motion from commit 85328c08.|2.5.50
[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 _0xaedb=['path','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','clientId','clientSecret','code','slice','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','authorization_code','serverUrl','application/x-www-form-urlencoded','parse','refresh_token','refreshToken','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','inspect','host','substring','https://accounts.zoho.in','POST','then','info','lodash','../../config/logger','moment','bluebird'];(function(_0x52ba6e,_0x403b56){var _0x5aef7c=function(_0x22a2cb){while(--_0x22a2cb){_0x52ba6e['push'](_0x52ba6e['shift']());}};_0x5aef7c(++_0x403b56);}(_0xaedb,0xfe));var _0xbaed=function(_0x339a28,_0x26eec4){_0x339a28=_0x339a28-0x0;var _0x4fcf88=_0xaedb[_0x339a28];return _0x4fcf88;};'use strict';var _=require(_0xbaed('0x0'));var util=require('util');var logger=require(_0xbaed('0x1'))('api');var moment=require(_0xbaed('0x2'));var BPromise=require(_0xbaed('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbaed('0x4'));var rimraf=require(_0xbaed('0x5'));var config=require(_0xbaed('0x6'));var attributes=require(_0xbaed('0x7'));var integrations=require(_0xbaed('0x8'));module[_0xbaed('0x9')]=function(_0x2e09fd,_0x3b2594){return _0x2e09fd[_0xbaed('0xa')](_0xbaed('0xb'),attributes,{'tableName':_0xbaed('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x35b433,_0x2169aa,_0x288f0a){if(_0x35b433[_0xbaed('0xd')](_0xbaed('0xe'))||_0x35b433['changed']('serverUrl')||_0x35b433[_0xbaed('0xd')](_0xbaed('0xf'))||_0x35b433[_0xbaed('0xd')](_0xbaed('0x10'))||_0x35b433[_0xbaed('0xd')](_0xbaed('0x11'))||_0x35b433[_0xbaed('0xd')]('host')){var _0x4779b9,_0x2c6045;_0x4779b9=_0x35b433['serverUrl'];var _0x19079e=_0x4779b9[_0xbaed('0x12')](-0x1);if(_0x19079e==='/'||_0x19079e==='\x5c'||_0x19079e===':'){_0x4779b9=_0x4779b9['substring'](0x0,_0x4779b9['lastIndexOf'](_0x19079e));}switch(_0x35b433[_0xbaed('0xe')]){case'US':_0x2c6045=_0xbaed('0x13');break;case'AU':_0x2c6045=_0xbaed('0x14');break;case'IN':_0x2c6045='https://accounts.zoho.in';break;case'CN':_0x2c6045=_0xbaed('0x15');break;default:_0x2c6045=_0xbaed('0x16');break;}var _0x430943={'method':'POST','uri':_0x2c6045+_0xbaed('0x17'),'form':{'grant_type':_0xbaed('0x18'),'client_id':_0x35b433[_0xbaed('0xf')],'client_secret':_0x35b433['clientSecret'],'redirect_uri':_0x35b433[_0xbaed('0x19')],'code':_0x35b433['code']},'headers':{'Content-Type':_0xbaed('0x1a')}};return rp(_0x430943)['then'](function(_0x4ad58e){var _0x36ab3c=JSON[_0xbaed('0x1b')](_0x4ad58e);if(_0x36ab3c[_0xbaed('0x1c')]){_0x35b433[_0xbaed('0x1d')]=_0x36ab3c[_0xbaed('0x1c')];logger['info'](util['format'](_0xbaed('0x1e'),_0x35b433[_0xbaed('0x1f')],_0x35b433['id']));}else{logger[_0xbaed('0x20')](util[_0xbaed('0x21')](_0xbaed('0x22'),_0x35b433[_0xbaed('0x1f')],_0x35b433['id']),util['inspect'](_0x36ab3c,{'showHidden':![],'depth':null}));}return _0x288f0a(null,_0x2169aa);})[_0xbaed('0x23')](function(_0x3e68bb){logger[_0xbaed('0x20')](util[_0xbaed('0x21')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x35b433[_0xbaed('0x1f')],_0x35b433['id']),util[_0xbaed('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x288f0a(_0x3e68bb);});}else{return _0x288f0a(null,_0x2169aa);}},'beforeUpdate':function(_0x567895,_0x3f9380,_0x3e323d){if(_0x567895[_0xbaed('0xd')]('zone')||_0x567895[_0xbaed('0xd')](_0xbaed('0x19'))||_0x567895[_0xbaed('0xd')](_0xbaed('0xf'))||_0x567895[_0xbaed('0xd')](_0xbaed('0x10'))||_0x567895[_0xbaed('0xd')](_0xbaed('0x11'))||_0x567895[_0xbaed('0xd')](_0xbaed('0x25'))){var _0x22142e,_0x1efed7;_0x22142e=_0x567895[_0xbaed('0x19')];var _0x1f5f32=_0x22142e[_0xbaed('0x12')](-0x1);if(_0x1f5f32==='/'||_0x1f5f32==='\x5c'||_0x1f5f32===':'){_0x22142e=_0x22142e[_0xbaed('0x26')](0x0,_0x22142e['lastIndexOf'](_0x1f5f32));}switch(_0x567895[_0xbaed('0xe')]){case'US':_0x1efed7=_0xbaed('0x13');break;case'AU':_0x1efed7=_0xbaed('0x14');break;case'IN':_0x1efed7=_0xbaed('0x27');break;case'CN':_0x1efed7=_0xbaed('0x15');break;default:_0x1efed7=_0xbaed('0x16');break;}var _0x302508={'method':_0xbaed('0x28'),'uri':_0x1efed7+_0xbaed('0x17'),'form':{'grant_type':_0xbaed('0x18'),'client_id':_0x567895[_0xbaed('0xf')],'client_secret':_0x567895[_0xbaed('0x10')],'redirect_uri':_0x567895[_0xbaed('0x19')],'code':_0x567895[_0xbaed('0x11')]},'headers':{'Content-Type':_0xbaed('0x1a')}};return rp(_0x302508)[_0xbaed('0x29')](function(_0x3bf334){var _0x38e985=JSON[_0xbaed('0x1b')](_0x3bf334);if(_0x38e985['refresh_token']){_0x567895['refreshToken']=_0x38e985[_0xbaed('0x1c')];logger[_0xbaed('0x2a')](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x567895[_0xbaed('0x1f')],_0x567895['id']));}else{logger[_0xbaed('0x20')](util[_0xbaed('0x21')](_0xbaed('0x22'),_0x567895[_0xbaed('0x1f')],_0x567895['id']),util[_0xbaed('0x24')](_0x38e985,{'showHidden':![],'depth':null}));}return _0x3e323d(null,_0x3f9380);})[_0xbaed('0x23')](function(_0x237e2e){logger['error'](util['format'](_0xbaed('0x22'),_0x567895['name'],_0x567895['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x3e323d(_0x237e2e);});}else{return _0x3e323d(null,_0x3f9380);}}}});};