e8f780033fad580f59fb24be6e563a5ea60e679d
[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 _0xb0f5=['application/x-www-form-urlencoded','parse','refresh_token','refreshToken','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','zone','host','lastIndexOf','POST','then','catch','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','clientId','clientSecret','code','slice','substring','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','authorization_code'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0xb0f5,0xc5));var _0x5b0f=function(_0x5a9c0c,_0x4ec485){_0x5a9c0c=_0x5a9c0c-0x0;var _0x53c77d=_0xb0f5[_0x5a9c0c];return _0x53c77d;};'use strict';var _=require(_0x5b0f('0x0'));var util=require(_0x5b0f('0x1'));var logger=require(_0x5b0f('0x2'))(_0x5b0f('0x3'));var moment=require('moment');var BPromise=require(_0x5b0f('0x4'));var rp=require(_0x5b0f('0x5'));var fs=require('fs');var path=require(_0x5b0f('0x6'));var rimraf=require(_0x5b0f('0x7'));var config=require('../../config/environment');var attributes=require(_0x5b0f('0x8'));var integrations=require(_0x5b0f('0x9'));module[_0x5b0f('0xa')]=function(_0x1f80a2,_0x2a9a66){return _0x1f80a2[_0x5b0f('0xb')](_0x5b0f('0xc'),attributes,{'tableName':_0x5b0f('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x26e58c,_0x36e595,_0x1a7ce3){if(_0x26e58c[_0x5b0f('0xe')]('zone')||_0x26e58c[_0x5b0f('0xe')](_0x5b0f('0xf'))||_0x26e58c[_0x5b0f('0xe')](_0x5b0f('0x10'))||_0x26e58c[_0x5b0f('0xe')](_0x5b0f('0x11'))||_0x26e58c[_0x5b0f('0xe')](_0x5b0f('0x12'))||_0x26e58c['changed']('host')){var _0x9d7b50,_0x61d192;_0x9d7b50=_0x26e58c[_0x5b0f('0xf')];var _0x16d1b0=_0x9d7b50[_0x5b0f('0x13')](-0x1);if(_0x16d1b0==='/'||_0x16d1b0==='\x5c'||_0x16d1b0===':'){_0x9d7b50=_0x9d7b50[_0x5b0f('0x14')](0x0,_0x9d7b50['lastIndexOf'](_0x16d1b0));}switch(_0x26e58c['zone']){case'US':_0x61d192=_0x5b0f('0x15');break;case'AU':_0x61d192=_0x5b0f('0x16');break;case'IN':_0x61d192=_0x5b0f('0x17');break;case'CN':_0x61d192=_0x5b0f('0x18');break;default:_0x61d192=_0x5b0f('0x19');break;}var _0xf9e8ab={'method':'POST','uri':_0x61d192+_0x5b0f('0x1a'),'form':{'grant_type':_0x5b0f('0x1b'),'client_id':_0x26e58c['clientId'],'client_secret':_0x26e58c[_0x5b0f('0x11')],'redirect_uri':_0x26e58c['serverUrl'],'code':_0x26e58c[_0x5b0f('0x12')]},'headers':{'Content-Type':_0x5b0f('0x1c')}};return rp(_0xf9e8ab)['then'](function(_0x4c9820){var _0xd9437e=JSON[_0x5b0f('0x1d')](_0x4c9820);if(_0xd9437e[_0x5b0f('0x1e')]){_0x26e58c[_0x5b0f('0x1f')]=_0xd9437e[_0x5b0f('0x1e')];logger[_0x5b0f('0x20')](util['format'](_0x5b0f('0x21'),_0x26e58c['name'],_0x26e58c['id']));}else{logger[_0x5b0f('0x22')](util[_0x5b0f('0x23')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x26e58c['name'],_0x26e58c['id']),util['inspect'](_0xd9437e,{'showHidden':![],'depth':null}));}return _0x1a7ce3(null,_0x36e595);})['catch'](function(_0x1cbf80){logger['error'](util[_0x5b0f('0x23')](_0x5b0f('0x24'),_0x26e58c[_0x5b0f('0x25')],_0x26e58c['id']),util[_0x5b0f('0x26')](parsedResult,{'showHidden':![],'depth':null}));return _0x1a7ce3(_0x1cbf80);});}else{return _0x1a7ce3(null,_0x36e595);}},'beforeUpdate':function(_0x5b4bdf,_0xfaff85,_0x42281b){if(_0x5b4bdf[_0x5b0f('0xe')](_0x5b0f('0x27'))||_0x5b4bdf[_0x5b0f('0xe')](_0x5b0f('0xf'))||_0x5b4bdf[_0x5b0f('0xe')](_0x5b0f('0x10'))||_0x5b4bdf['changed'](_0x5b0f('0x11'))||_0x5b4bdf[_0x5b0f('0xe')]('code')||_0x5b4bdf[_0x5b0f('0xe')](_0x5b0f('0x28'))){var _0x3cb757,_0x158221;_0x3cb757=_0x5b4bdf[_0x5b0f('0xf')];var _0x5789b6=_0x3cb757[_0x5b0f('0x13')](-0x1);if(_0x5789b6==='/'||_0x5789b6==='\x5c'||_0x5789b6===':'){_0x3cb757=_0x3cb757[_0x5b0f('0x14')](0x0,_0x3cb757[_0x5b0f('0x29')](_0x5789b6));}switch(_0x5b4bdf['zone']){case'US':_0x158221='https://accounts.zoho.com';break;case'AU':_0x158221=_0x5b0f('0x16');break;case'IN':_0x158221=_0x5b0f('0x17');break;case'CN':_0x158221=_0x5b0f('0x18');break;default:_0x158221=_0x5b0f('0x19');break;}var _0x20aaee={'method':_0x5b0f('0x2a'),'uri':_0x158221+'/oauth/v2/token','form':{'grant_type':'authorization_code','client_id':_0x5b4bdf[_0x5b0f('0x10')],'client_secret':_0x5b4bdf['clientSecret'],'redirect_uri':_0x5b4bdf[_0x5b0f('0xf')],'code':_0x5b4bdf['code']},'headers':{'Content-Type':_0x5b0f('0x1c')}};return rp(_0x20aaee)[_0x5b0f('0x2b')](function(_0x3cad48){var _0x86fece=JSON[_0x5b0f('0x1d')](_0x3cad48);if(_0x86fece[_0x5b0f('0x1e')]){_0x5b4bdf['refreshToken']=_0x86fece[_0x5b0f('0x1e')];logger[_0x5b0f('0x20')](util[_0x5b0f('0x23')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x5b4bdf[_0x5b0f('0x25')],_0x5b4bdf['id']));}else{logger['error'](util['format'](_0x5b0f('0x24'),_0x5b4bdf[_0x5b0f('0x25')],_0x5b4bdf['id']),util[_0x5b0f('0x26')](_0x86fece,{'showHidden':![],'depth':null}));}return _0x42281b(null,_0xfaff85);})[_0x5b0f('0x2c')](function(_0xa00eb6){logger[_0x5b0f('0x22')](util[_0x5b0f('0x23')](_0x5b0f('0x24'),_0x5b4bdf[_0x5b0f('0x25')],_0x5b4bdf['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x42281b(_0xa00eb6);});}else{return _0x42281b(null,_0xfaff85);}}}});};