Built motion from commit c116dc8b.|2.6.30
[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 _0xd429=['https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','application/x-www-form-urlencoded','then','parse','refresh_token','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','inspect','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','lastIndexOf','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','../../components/integrations/configuration','define','int_zoho_accounts','changed','zone','clientId','clientSecret','code','host','serverUrl','slice','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn'];(function(_0x149186,_0x4bd845){var _0x71d9c7=function(_0x30fbd6){while(--_0x30fbd6){_0x149186['push'](_0x149186['shift']());}};_0x71d9c7(++_0x4bd845);}(_0xd429,0x1c9));var _0x9d42=function(_0x68eeff,_0x158b1d){_0x68eeff=_0x68eeff-0x0;var _0x84f973=_0xd429[_0x68eeff];return _0x84f973;};'use strict';var _=require('lodash');var util=require(_0x9d42('0x0'));var logger=require(_0x9d42('0x1'))('api');var moment=require(_0x9d42('0x2'));var BPromise=require(_0x9d42('0x3'));var rp=require(_0x9d42('0x4'));var fs=require('fs');var path=require(_0x9d42('0x5'));var rimraf=require(_0x9d42('0x6'));var config=require(_0x9d42('0x7'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0x9d42('0x8'));module['exports']=function(_0xf206c6,_0x3e8604){return _0xf206c6[_0x9d42('0x9')]('ZohoAccount',attributes,{'tableName':_0x9d42('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x54f98f,_0x288b59,_0x31a94d){if(_0x54f98f[_0x9d42('0xb')](_0x9d42('0xc'))||_0x54f98f[_0x9d42('0xb')]('serverUrl')||_0x54f98f[_0x9d42('0xb')](_0x9d42('0xd'))||_0x54f98f[_0x9d42('0xb')](_0x9d42('0xe'))||_0x54f98f[_0x9d42('0xb')](_0x9d42('0xf'))||_0x54f98f[_0x9d42('0xb')](_0x9d42('0x10'))){var _0x45f592,_0x1aee88;_0x45f592=_0x54f98f[_0x9d42('0x11')];var _0x38a9f7=_0x45f592[_0x9d42('0x12')](-0x1);if(_0x38a9f7==='/'||_0x38a9f7==='\x5c'||_0x38a9f7===':'){_0x45f592=_0x45f592['substring'](0x0,_0x45f592['lastIndexOf'](_0x38a9f7));}switch(_0x54f98f[_0x9d42('0xc')]){case'US':_0x1aee88=_0x9d42('0x13');break;case'AU':_0x1aee88=_0x9d42('0x14');break;case'IN':_0x1aee88=_0x9d42('0x15');break;case'CN':_0x1aee88=_0x9d42('0x16');break;default:_0x1aee88=_0x9d42('0x17');break;}var _0x4a52b6={'method':_0x9d42('0x18'),'uri':_0x1aee88+_0x9d42('0x19'),'form':{'grant_type':_0x9d42('0x1a'),'client_id':_0x54f98f[_0x9d42('0xd')],'client_secret':_0x54f98f[_0x9d42('0xe')],'redirect_uri':_0x54f98f['serverUrl'],'code':_0x54f98f['code']},'headers':{'Content-Type':_0x9d42('0x1b')}};return rp(_0x4a52b6)[_0x9d42('0x1c')](function(_0xdb683e){var _0x55232f=JSON[_0x9d42('0x1d')](_0xdb683e);if(_0x55232f[_0x9d42('0x1e')]){_0x54f98f['refreshToken']=_0x55232f[_0x9d42('0x1e')];logger[_0x9d42('0x1f')](util[_0x9d42('0x20')](_0x9d42('0x21'),_0x54f98f['name'],_0x54f98f['id']));}else{logger[_0x9d42('0x22')](util[_0x9d42('0x20')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x54f98f['name'],_0x54f98f['id']),util[_0x9d42('0x23')](_0x55232f,{'showHidden':![],'depth':null}));}return _0x31a94d(null,_0x288b59);})[_0x9d42('0x24')](function(_0x344637){logger[_0x9d42('0x22')](util[_0x9d42('0x20')](_0x9d42('0x25'),_0x54f98f[_0x9d42('0x26')],_0x54f98f['id']),util[_0x9d42('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x31a94d(_0x344637);});}else{return _0x31a94d(null,_0x288b59);}},'beforeUpdate':function(_0x1cc423,_0x5635f8,_0x559285){if(_0x1cc423[_0x9d42('0xb')](_0x9d42('0xc'))||_0x1cc423['changed'](_0x9d42('0x11'))||_0x1cc423[_0x9d42('0xb')](_0x9d42('0xd'))||_0x1cc423[_0x9d42('0xb')](_0x9d42('0xe'))||_0x1cc423['changed'](_0x9d42('0xf'))||_0x1cc423[_0x9d42('0xb')](_0x9d42('0x10'))){var _0x34a7b7,_0x4a831c;_0x34a7b7=_0x1cc423[_0x9d42('0x11')];var _0x4a9e65=_0x34a7b7[_0x9d42('0x12')](-0x1);if(_0x4a9e65==='/'||_0x4a9e65==='\x5c'||_0x4a9e65===':'){_0x34a7b7=_0x34a7b7['substring'](0x0,_0x34a7b7[_0x9d42('0x27')](_0x4a9e65));}switch(_0x1cc423[_0x9d42('0xc')]){case'US':_0x4a831c='https://accounts.zoho.com';break;case'AU':_0x4a831c='https://accounts.zoho.com.au';break;case'IN':_0x4a831c='https://accounts.zoho.in';break;case'CN':_0x4a831c=_0x9d42('0x16');break;default:_0x4a831c='https://accounts.zoho.eu';break;}var _0x349158={'method':_0x9d42('0x18'),'uri':_0x4a831c+_0x9d42('0x19'),'form':{'grant_type':'authorization_code','client_id':_0x1cc423[_0x9d42('0xd')],'client_secret':_0x1cc423['clientSecret'],'redirect_uri':_0x1cc423[_0x9d42('0x11')],'code':_0x1cc423[_0x9d42('0xf')]},'headers':{'Content-Type':_0x9d42('0x1b')}};return rp(_0x349158)['then'](function(_0x38294c){var _0x51e899=JSON[_0x9d42('0x1d')](_0x38294c);if(_0x51e899[_0x9d42('0x1e')]){_0x1cc423['refreshToken']=_0x51e899[_0x9d42('0x1e')];logger[_0x9d42('0x1f')](util[_0x9d42('0x20')](_0x9d42('0x21'),_0x1cc423[_0x9d42('0x26')],_0x1cc423['id']));}else{logger[_0x9d42('0x22')](util[_0x9d42('0x20')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1cc423[_0x9d42('0x26')],_0x1cc423['id']),util['inspect'](_0x51e899,{'showHidden':![],'depth':null}));}return _0x559285(null,_0x5635f8);})[_0x9d42('0x24')](function(_0xe02cac){logger[_0x9d42('0x22')](util[_0x9d42('0x20')](_0x9d42('0x25'),_0x1cc423['name'],_0x1cc423['id']),util[_0x9d42('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x559285(_0xe02cac);});}else{return _0x559285(null,_0x5635f8);}}}});};