739064253ddd9655184cc964ed776e5b91f2eea2
[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 _0xe7fb=['moment','bluebird','request-promise','path','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','int_zoho_accounts','zone','serverUrl','changed','clientId','clientSecret','code','host','slice','substring','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code','application/x-www-form-urlencoded','parse','refresh_token','info','error','format','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','lastIndexOf','/oauth/v2/token','then','refreshToken','inspect','../../config/logger','api'];(function(_0x5ddadd,_0x2b56c8){var _0x2a0172=function(_0x2bd8db){while(--_0x2bd8db){_0x5ddadd['push'](_0x5ddadd['shift']());}};_0x2a0172(++_0x2b56c8);}(_0xe7fb,0x1a2));var _0xbe7f=function(_0x517669,_0x50fee0){_0x517669=_0x517669-0x0;var _0x11fb79=_0xe7fb[_0x517669];return _0x11fb79;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xbe7f('0x0'))(_0xbe7f('0x1'));var moment=require(_0xbe7f('0x2'));var BPromise=require(_0xbe7f('0x3'));var rp=require(_0xbe7f('0x4'));var fs=require('fs');var path=require(_0xbe7f('0x5'));var rimraf=require('rimraf');var config=require(_0xbe7f('0x6'));var attributes=require(_0xbe7f('0x7'));var integrations=require(_0xbe7f('0x8'));module[_0xbe7f('0x9')]=function(_0x20b2e7,_0x569662){return _0x20b2e7[_0xbe7f('0xa')]('ZohoAccount',attributes,{'tableName':_0xbe7f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x1d8a1d,_0xad2991,_0x54376f){if(_0x1d8a1d['changed'](_0xbe7f('0xc'))||_0x1d8a1d['changed'](_0xbe7f('0xd'))||_0x1d8a1d[_0xbe7f('0xe')](_0xbe7f('0xf'))||_0x1d8a1d[_0xbe7f('0xe')](_0xbe7f('0x10'))||_0x1d8a1d[_0xbe7f('0xe')](_0xbe7f('0x11'))||_0x1d8a1d[_0xbe7f('0xe')](_0xbe7f('0x12'))){var _0x4e8bc0,_0x54492c;_0x4e8bc0=_0x1d8a1d[_0xbe7f('0xd')];var _0x68fba7=_0x4e8bc0[_0xbe7f('0x13')](-0x1);if(_0x68fba7==='/'||_0x68fba7==='\x5c'||_0x68fba7===':'){_0x4e8bc0=_0x4e8bc0[_0xbe7f('0x14')](0x0,_0x4e8bc0['lastIndexOf'](_0x68fba7));}switch(_0x1d8a1d[_0xbe7f('0xc')]){case'US':_0x54492c=_0xbe7f('0x15');break;case'AU':_0x54492c=_0xbe7f('0x16');break;case'IN':_0x54492c=_0xbe7f('0x17');break;case'CN':_0x54492c=_0xbe7f('0x18');break;default:_0x54492c=_0xbe7f('0x19');break;}var _0x3e48d4={'method':_0xbe7f('0x1a'),'uri':_0x54492c+'/oauth/v2/token','form':{'grant_type':_0xbe7f('0x1b'),'client_id':_0x1d8a1d[_0xbe7f('0xf')],'client_secret':_0x1d8a1d[_0xbe7f('0x10')],'redirect_uri':_0x1d8a1d[_0xbe7f('0xd')],'code':_0x1d8a1d[_0xbe7f('0x11')]},'headers':{'Content-Type':_0xbe7f('0x1c')}};return rp(_0x3e48d4)['then'](function(_0x29cac9){var _0x2a7567=JSON[_0xbe7f('0x1d')](_0x29cac9);if(_0x2a7567['refresh_token']){_0x1d8a1d['refreshToken']=_0x2a7567[_0xbe7f('0x1e')];logger[_0xbe7f('0x1f')](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1d8a1d['name'],_0x1d8a1d['id']));}else{logger[_0xbe7f('0x20')](util[_0xbe7f('0x21')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1d8a1d['name'],_0x1d8a1d['id']),util['inspect'](_0x2a7567,{'showHidden':![],'depth':null}));}return _0x54376f(null,_0xad2991);})[_0xbe7f('0x22')](function(_0x31d1ee){logger['error'](util[_0xbe7f('0x21')](_0xbe7f('0x23'),_0x1d8a1d[_0xbe7f('0x24')],_0x1d8a1d['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x54376f(_0x31d1ee);});}else{return _0x54376f(null,_0xad2991);}},'beforeUpdate':function(_0x4a2814,_0x49d4d2,_0x2d8b0c){if(_0x4a2814[_0xbe7f('0xe')](_0xbe7f('0xc'))||_0x4a2814[_0xbe7f('0xe')](_0xbe7f('0xd'))||_0x4a2814['changed'](_0xbe7f('0xf'))||_0x4a2814[_0xbe7f('0xe')](_0xbe7f('0x10'))||_0x4a2814[_0xbe7f('0xe')](_0xbe7f('0x11'))||_0x4a2814[_0xbe7f('0xe')]('host')){var _0x2c8d3b,_0x47561a;_0x2c8d3b=_0x4a2814[_0xbe7f('0xd')];var _0x39e43b=_0x2c8d3b[_0xbe7f('0x13')](-0x1);if(_0x39e43b==='/'||_0x39e43b==='\x5c'||_0x39e43b===':'){_0x2c8d3b=_0x2c8d3b[_0xbe7f('0x14')](0x0,_0x2c8d3b[_0xbe7f('0x25')](_0x39e43b));}switch(_0x4a2814[_0xbe7f('0xc')]){case'US':_0x47561a=_0xbe7f('0x15');break;case'AU':_0x47561a=_0xbe7f('0x16');break;case'IN':_0x47561a=_0xbe7f('0x17');break;case'CN':_0x47561a=_0xbe7f('0x18');break;default:_0x47561a='https://accounts.zoho.eu';break;}var _0x256aa1={'method':_0xbe7f('0x1a'),'uri':_0x47561a+_0xbe7f('0x26'),'form':{'grant_type':_0xbe7f('0x1b'),'client_id':_0x4a2814['clientId'],'client_secret':_0x4a2814[_0xbe7f('0x10')],'redirect_uri':_0x4a2814[_0xbe7f('0xd')],'code':_0x4a2814[_0xbe7f('0x11')]},'headers':{'Content-Type':_0xbe7f('0x1c')}};return rp(_0x256aa1)[_0xbe7f('0x27')](function(_0x508f35){var _0x231821=JSON[_0xbe7f('0x1d')](_0x508f35);if(_0x231821['refresh_token']){_0x4a2814[_0xbe7f('0x28')]=_0x231821['refresh_token'];logger[_0xbe7f('0x1f')](util[_0xbe7f('0x21')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4a2814['name'],_0x4a2814['id']));}else{logger[_0xbe7f('0x20')](util['format'](_0xbe7f('0x23'),_0x4a2814[_0xbe7f('0x24')],_0x4a2814['id']),util[_0xbe7f('0x29')](_0x231821,{'showHidden':![],'depth':null}));}return _0x2d8b0c(null,_0x49d4d2);})[_0xbe7f('0x22')](function(_0x316fda){logger[_0xbe7f('0x20')](util[_0xbe7f('0x21')](_0xbe7f('0x23'),_0x4a2814[_0xbe7f('0x24')],_0x4a2814['id']),util[_0xbe7f('0x29')](parsedResult,{'showHidden':![],'depth':null}));return _0x2d8b0c(_0x316fda);});}else{return _0x2d8b0c(null,_0x49d4d2);}}}});};