421c97b0164b28864e4d3533c33d706edbcd9721
[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 _0xd185=['changed','clientId','host','serverUrl','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientSecret','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','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','https://accounts.zoho.eu','authorization_code','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoAccount.attributes','exports','zone'];(function(_0x5a5dce,_0x1d8cdf){var _0xb98def=function(_0xafdedd){while(--_0xafdedd){_0x5a5dce['push'](_0x5a5dce['shift']());}};_0xb98def(++_0x1d8cdf);}(_0xd185,0x9c));var _0x5d18=function(_0x37794b,_0x324b04){_0x37794b=_0x37794b-0x0;var _0x416d7b=_0xd185[_0x37794b];return _0x416d7b;};'use strict';var _=require(_0x5d18('0x0'));var util=require(_0x5d18('0x1'));var logger=require(_0x5d18('0x2'))('api');var moment=require(_0x5d18('0x3'));var BPromise=require(_0x5d18('0x4'));var rp=require(_0x5d18('0x5'));var fs=require('fs');var path=require(_0x5d18('0x6'));var rimraf=require(_0x5d18('0x7'));var config=require(_0x5d18('0x8'));var attributes=require(_0x5d18('0x9'));var integrations=require('../../components/integrations/configuration');module[_0x5d18('0xa')]=function(_0x19643a,_0x29164c){return _0x19643a['define']('ZohoAccount',attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x44a30a,_0x3a669a,_0x5a5137){if(_0x44a30a['changed'](_0x5d18('0xb'))||_0x44a30a[_0x5d18('0xc')]('serverUrl')||_0x44a30a['changed'](_0x5d18('0xd'))||_0x44a30a[_0x5d18('0xc')]('clientSecret')||_0x44a30a[_0x5d18('0xc')]('code')||_0x44a30a[_0x5d18('0xc')](_0x5d18('0xe'))){var _0xbdc3bf,_0x4fcaed;_0xbdc3bf=_0x44a30a[_0x5d18('0xf')];var _0x5df0ac=_0xbdc3bf[_0x5d18('0x10')](-0x1);if(_0x5df0ac==='/'||_0x5df0ac==='\x5c'||_0x5df0ac===':'){_0xbdc3bf=_0xbdc3bf[_0x5d18('0x11')](0x0,_0xbdc3bf[_0x5d18('0x12')](_0x5df0ac));}switch(_0x44a30a[_0x5d18('0xb')]){case'US':_0x4fcaed=_0x5d18('0x13');break;case'AU':_0x4fcaed=_0x5d18('0x14');break;case'IN':_0x4fcaed=_0x5d18('0x15');break;case'CN':_0x4fcaed=_0x5d18('0x16');break;default:_0x4fcaed='https://accounts.zoho.eu';break;}var _0x54cada={'method':_0x5d18('0x17'),'uri':_0x4fcaed+_0x5d18('0x18'),'form':{'grant_type':'authorization_code','client_id':_0x44a30a[_0x5d18('0xd')],'client_secret':_0x44a30a[_0x5d18('0x19')],'redirect_uri':_0x44a30a[_0x5d18('0xf')],'code':_0x44a30a[_0x5d18('0x1a')]},'headers':{'Content-Type':_0x5d18('0x1b')}};return rp(_0x54cada)[_0x5d18('0x1c')](function(_0x35645c){var _0x4e1fe9=JSON[_0x5d18('0x1d')](_0x35645c);if(_0x4e1fe9[_0x5d18('0x1e')]){_0x44a30a[_0x5d18('0x1f')]=_0x4e1fe9[_0x5d18('0x1e')];logger[_0x5d18('0x20')](util[_0x5d18('0x21')](_0x5d18('0x22'),_0x44a30a[_0x5d18('0x23')],_0x44a30a['id']));}else{logger[_0x5d18('0x24')](util['format'](_0x5d18('0x25'),_0x44a30a[_0x5d18('0x23')],_0x44a30a['id']),util[_0x5d18('0x26')](_0x4e1fe9,{'showHidden':![],'depth':null}));}return _0x5a5137(null,_0x3a669a);})[_0x5d18('0x27')](function(_0x367f46){logger[_0x5d18('0x24')](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x44a30a[_0x5d18('0x23')],_0x44a30a['id']),util[_0x5d18('0x26')](parsedResult,{'showHidden':![],'depth':null}));return _0x5a5137(_0x367f46);});}else{return _0x5a5137(null,_0x3a669a);}},'beforeUpdate':function(_0x190e93,_0x31ff55,_0x2ce667){if(_0x190e93[_0x5d18('0xc')](_0x5d18('0xb'))||_0x190e93[_0x5d18('0xc')](_0x5d18('0xf'))||_0x190e93[_0x5d18('0xc')](_0x5d18('0xd'))||_0x190e93[_0x5d18('0xc')](_0x5d18('0x19'))||_0x190e93[_0x5d18('0xc')]('code')||_0x190e93[_0x5d18('0xc')]('host')){var _0x313036,_0x222c7a;_0x313036=_0x190e93[_0x5d18('0xf')];var _0x342973=_0x313036[_0x5d18('0x10')](-0x1);if(_0x342973==='/'||_0x342973==='\x5c'||_0x342973===':'){_0x313036=_0x313036['substring'](0x0,_0x313036[_0x5d18('0x12')](_0x342973));}switch(_0x190e93[_0x5d18('0xb')]){case'US':_0x222c7a=_0x5d18('0x13');break;case'AU':_0x222c7a=_0x5d18('0x14');break;case'IN':_0x222c7a=_0x5d18('0x15');break;case'CN':_0x222c7a=_0x5d18('0x16');break;default:_0x222c7a=_0x5d18('0x28');break;}var _0x50bb75={'method':_0x5d18('0x17'),'uri':_0x222c7a+_0x5d18('0x18'),'form':{'grant_type':_0x5d18('0x29'),'client_id':_0x190e93[_0x5d18('0xd')],'client_secret':_0x190e93[_0x5d18('0x19')],'redirect_uri':_0x190e93[_0x5d18('0xf')],'code':_0x190e93[_0x5d18('0x1a')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x50bb75)[_0x5d18('0x1c')](function(_0x4457a0){var _0x5184fa=JSON['parse'](_0x4457a0);if(_0x5184fa[_0x5d18('0x1e')]){_0x190e93[_0x5d18('0x1f')]=_0x5184fa[_0x5d18('0x1e')];logger['info'](util[_0x5d18('0x21')](_0x5d18('0x22'),_0x190e93[_0x5d18('0x23')],_0x190e93['id']));}else{logger[_0x5d18('0x24')](util[_0x5d18('0x21')](_0x5d18('0x25'),_0x190e93[_0x5d18('0x23')],_0x190e93['id']),util[_0x5d18('0x26')](_0x5184fa,{'showHidden':![],'depth':null}));}return _0x2ce667(null,_0x31ff55);})[_0x5d18('0x27')](function(_0x4c94bf){logger['error'](util[_0x5d18('0x21')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x190e93['name'],_0x190e93['id']),util[_0x5d18('0x26')](parsedResult,{'showHidden':![],'depth':null}));return _0x2ce667(_0x4c94bf);});}else{return _0x2ce667(null,_0x31ff55);}}}});};