Built motion from commit (unavailable).|2.5.31
[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 _0xeb6e=['lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../components/integrations/configuration','exports','define','changed','serverUrl','clientId','clientSecret','slice','lastIndexOf','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','POST','authorization_code','application/x-www-form-urlencoded','then','refresh_token','refreshToken','info','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','inspect','catch','code','host','substring','/oauth/v2/token','parse'];(function(_0x11005e,_0x20c3d2){var _0x29338f=function(_0x3384e9){while(--_0x3384e9){_0x11005e['push'](_0x11005e['shift']());}};_0x29338f(++_0x20c3d2);}(_0xeb6e,0x138));var _0xeeb6=function(_0x253a65,_0x430510){_0x253a65=_0x253a65-0x0;var _0x172389=_0xeb6e[_0x253a65];return _0x172389;};'use strict';var _=require(_0xeeb6('0x0'));var util=require(_0xeeb6('0x1'));var logger=require(_0xeeb6('0x2'))('api');var moment=require(_0xeeb6('0x3'));var BPromise=require('bluebird');var rp=require(_0xeeb6('0x4'));var fs=require('fs');var path=require(_0xeeb6('0x5'));var rimraf=require(_0xeeb6('0x6'));var config=require('../../config/environment');var attributes=require('./intZohoAccount.attributes');var integrations=require(_0xeeb6('0x7'));module[_0xeeb6('0x8')]=function(_0x411050,_0x4cdb69){return _0x411050[_0xeeb6('0x9')]('ZohoAccount',attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x91475a,_0x2a0f14,_0x239412){if(_0x91475a[_0xeeb6('0xa')]('zone')||_0x91475a[_0xeeb6('0xa')](_0xeeb6('0xb'))||_0x91475a['changed'](_0xeeb6('0xc'))||_0x91475a[_0xeeb6('0xa')](_0xeeb6('0xd'))||_0x91475a[_0xeeb6('0xa')]('code')||_0x91475a[_0xeeb6('0xa')]('host')){var _0x44985e,_0x7ce40b;_0x44985e=_0x91475a[_0xeeb6('0xb')];var _0x14179f=_0x44985e[_0xeeb6('0xe')](-0x1);if(_0x14179f==='/'||_0x14179f==='\x5c'||_0x14179f===':'){_0x44985e=_0x44985e['substring'](0x0,_0x44985e[_0xeeb6('0xf')](_0x14179f));}switch(_0x91475a[_0xeeb6('0x10')]){case'US':_0x7ce40b=_0xeeb6('0x11');break;case'AU':_0x7ce40b=_0xeeb6('0x12');break;case'IN':_0x7ce40b=_0xeeb6('0x13');break;case'CN':_0x7ce40b='https://accounts.zoho.com.cn';break;default:_0x7ce40b='https://accounts.zoho.eu';break;}var _0x310494={'method':_0xeeb6('0x14'),'uri':_0x7ce40b+'/oauth/v2/token','form':{'grant_type':_0xeeb6('0x15'),'client_id':_0x91475a['clientId'],'client_secret':_0x91475a[_0xeeb6('0xd')],'redirect_uri':_0x91475a[_0xeeb6('0xb')],'code':_0x91475a['code']},'headers':{'Content-Type':_0xeeb6('0x16')}};return rp(_0x310494)[_0xeeb6('0x17')](function(_0x302ae0){var _0x4133af=JSON['parse'](_0x302ae0);if(_0x4133af[_0xeeb6('0x18')]){_0x91475a[_0xeeb6('0x19')]=_0x4133af[_0xeeb6('0x18')];logger[_0xeeb6('0x1a')](util[_0xeeb6('0x1b')](_0xeeb6('0x1c'),_0x91475a[_0xeeb6('0x1d')],_0x91475a['id']));}else{logger[_0xeeb6('0x1e')](util['format'](_0xeeb6('0x1f'),_0x91475a[_0xeeb6('0x1d')],_0x91475a['id']),util[_0xeeb6('0x20')](_0x4133af,{'showHidden':![],'depth':null}));}return _0x239412(null,_0x2a0f14);})[_0xeeb6('0x21')](function(_0x33c2c5){logger[_0xeeb6('0x1e')](util[_0xeeb6('0x1b')](_0xeeb6('0x1f'),_0x91475a[_0xeeb6('0x1d')],_0x91475a['id']),util[_0xeeb6('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x239412(_0x33c2c5);});}else{return _0x239412(null,_0x2a0f14);}},'beforeUpdate':function(_0x120bd3,_0x1b21a4,_0x5a290b){if(_0x120bd3[_0xeeb6('0xa')](_0xeeb6('0x10'))||_0x120bd3[_0xeeb6('0xa')](_0xeeb6('0xb'))||_0x120bd3[_0xeeb6('0xa')]('clientId')||_0x120bd3[_0xeeb6('0xa')]('clientSecret')||_0x120bd3[_0xeeb6('0xa')](_0xeeb6('0x22'))||_0x120bd3[_0xeeb6('0xa')](_0xeeb6('0x23'))){var _0x30f8b8,_0xb050b6;_0x30f8b8=_0x120bd3[_0xeeb6('0xb')];var _0x5ba91f=_0x30f8b8[_0xeeb6('0xe')](-0x1);if(_0x5ba91f==='/'||_0x5ba91f==='\x5c'||_0x5ba91f===':'){_0x30f8b8=_0x30f8b8[_0xeeb6('0x24')](0x0,_0x30f8b8[_0xeeb6('0xf')](_0x5ba91f));}switch(_0x120bd3['zone']){case'US':_0xb050b6=_0xeeb6('0x11');break;case'AU':_0xb050b6=_0xeeb6('0x12');break;case'IN':_0xb050b6=_0xeeb6('0x13');break;case'CN':_0xb050b6='https://accounts.zoho.com.cn';break;default:_0xb050b6='https://accounts.zoho.eu';break;}var _0xc8a7ca={'method':'POST','uri':_0xb050b6+_0xeeb6('0x25'),'form':{'grant_type':'authorization_code','client_id':_0x120bd3[_0xeeb6('0xc')],'client_secret':_0x120bd3['clientSecret'],'redirect_uri':_0x120bd3[_0xeeb6('0xb')],'code':_0x120bd3['code']},'headers':{'Content-Type':_0xeeb6('0x16')}};return rp(_0xc8a7ca)[_0xeeb6('0x17')](function(_0xf380ca){var _0x2d8407=JSON[_0xeeb6('0x26')](_0xf380ca);if(_0x2d8407[_0xeeb6('0x18')]){_0x120bd3[_0xeeb6('0x19')]=_0x2d8407['refresh_token'];logger[_0xeeb6('0x1a')](util[_0xeeb6('0x1b')](_0xeeb6('0x1c'),_0x120bd3[_0xeeb6('0x1d')],_0x120bd3['id']));}else{logger['error'](util[_0xeeb6('0x1b')](_0xeeb6('0x1f'),_0x120bd3[_0xeeb6('0x1d')],_0x120bd3['id']),util[_0xeeb6('0x20')](_0x2d8407,{'showHidden':![],'depth':null}));}return _0x5a290b(null,_0x1b21a4);})[_0xeeb6('0x21')](function(_0x3f074d){logger[_0xeeb6('0x1e')](util[_0xeeb6('0x1b')](_0xeeb6('0x1f'),_0x120bd3[_0xeeb6('0x1d')],_0x120bd3['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x5a290b(_0x3f074d);});}else{return _0x5a290b(null,_0x1b21a4);}}}});};