Built motion from commit b0a9a629.|2.6.33
[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 _0xd43b=['../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','clientSecret','code','host','serverUrl','substring','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','clientId','parse','refreshToken','refresh_token','name','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','inspect','lastIndexOf','https://accounts.zoho.com','application/x-www-form-urlencoded','then','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','lodash','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x442905,_0x5b3ef5){var _0x5dbff3=function(_0x5516e9){while(--_0x5516e9){_0x442905['push'](_0x442905['shift']());}};_0x5dbff3(++_0x5b3ef5);}(_0xd43b,0x1c7));var _0xbd43=function(_0x24d41e,_0x4af282){_0x24d41e=_0x24d41e-0x0;var _0x1c3483=_0xd43b[_0x24d41e];return _0x1c3483;};'use strict';var _=require(_0xbd43('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xbd43('0x1'));var moment=require('moment');var BPromise=require(_0xbd43('0x2'));var rp=require(_0xbd43('0x3'));var fs=require('fs');var path=require(_0xbd43('0x4'));var rimraf=require(_0xbd43('0x5'));var config=require(_0xbd43('0x6'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0xbd43('0x7'));module[_0xbd43('0x8')]=function(_0x140130,_0x5ef5b3){return _0x140130[_0xbd43('0x9')](_0xbd43('0xa'),attributes,{'tableName':_0xbd43('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x4a62f1,_0x5edd7d,_0x1cc501){if(_0x4a62f1[_0xbd43('0xc')](_0xbd43('0xd'))||_0x4a62f1[_0xbd43('0xc')]('serverUrl')||_0x4a62f1[_0xbd43('0xc')]('clientId')||_0x4a62f1[_0xbd43('0xc')](_0xbd43('0xe'))||_0x4a62f1[_0xbd43('0xc')](_0xbd43('0xf'))||_0x4a62f1['changed'](_0xbd43('0x10'))){var _0x4a987a,_0x251d23;_0x4a987a=_0x4a62f1[_0xbd43('0x11')];var _0x3fef0e=_0x4a987a['slice'](-0x1);if(_0x3fef0e==='/'||_0x3fef0e==='\x5c'||_0x3fef0e===':'){_0x4a987a=_0x4a987a[_0xbd43('0x12')](0x0,_0x4a987a['lastIndexOf'](_0x3fef0e));}switch(_0x4a62f1['zone']){case'US':_0x251d23='https://accounts.zoho.com';break;case'AU':_0x251d23=_0xbd43('0x13');break;case'IN':_0x251d23=_0xbd43('0x14');break;case'CN':_0x251d23=_0xbd43('0x15');break;default:_0x251d23=_0xbd43('0x16');break;}var _0x3cf409={'method':_0xbd43('0x17'),'uri':_0x251d23+_0xbd43('0x18'),'form':{'grant_type':_0xbd43('0x19'),'client_id':_0x4a62f1[_0xbd43('0x1a')],'client_secret':_0x4a62f1[_0xbd43('0xe')],'redirect_uri':_0x4a62f1[_0xbd43('0x11')],'code':_0x4a62f1[_0xbd43('0xf')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x3cf409)['then'](function(_0xe92355){var _0x54a72e=JSON[_0xbd43('0x1b')](_0xe92355);if(_0x54a72e['refresh_token']){_0x4a62f1[_0xbd43('0x1c')]=_0x54a72e[_0xbd43('0x1d')];logger['info'](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4a62f1[_0xbd43('0x1e')],_0x4a62f1['id']));}else{logger[_0xbd43('0x1f')](util[_0xbd43('0x20')](_0xbd43('0x21'),_0x4a62f1[_0xbd43('0x1e')],_0x4a62f1['id']),util['inspect'](_0x54a72e,{'showHidden':![],'depth':null}));}return _0x1cc501(null,_0x5edd7d);})[_0xbd43('0x22')](function(_0x328cd){logger[_0xbd43('0x1f')](util[_0xbd43('0x20')](_0xbd43('0x21'),_0x4a62f1['name'],_0x4a62f1['id']),util[_0xbd43('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x1cc501(_0x328cd);});}else{return _0x1cc501(null,_0x5edd7d);}},'beforeUpdate':function(_0x331ad5,_0x434017,_0x38666e){if(_0x331ad5[_0xbd43('0xc')](_0xbd43('0xd'))||_0x331ad5[_0xbd43('0xc')](_0xbd43('0x11'))||_0x331ad5['changed'](_0xbd43('0x1a'))||_0x331ad5[_0xbd43('0xc')](_0xbd43('0xe'))||_0x331ad5[_0xbd43('0xc')](_0xbd43('0xf'))||_0x331ad5[_0xbd43('0xc')](_0xbd43('0x10'))){var _0x519921,_0x25d832;_0x519921=_0x331ad5[_0xbd43('0x11')];var _0x2c816a=_0x519921['slice'](-0x1);if(_0x2c816a==='/'||_0x2c816a==='\x5c'||_0x2c816a===':'){_0x519921=_0x519921[_0xbd43('0x12')](0x0,_0x519921[_0xbd43('0x24')](_0x2c816a));}switch(_0x331ad5[_0xbd43('0xd')]){case'US':_0x25d832=_0xbd43('0x25');break;case'AU':_0x25d832='https://accounts.zoho.com.au';break;case'IN':_0x25d832=_0xbd43('0x14');break;case'CN':_0x25d832=_0xbd43('0x15');break;default:_0x25d832=_0xbd43('0x16');break;}var _0x5d13fa={'method':_0xbd43('0x17'),'uri':_0x25d832+_0xbd43('0x18'),'form':{'grant_type':'authorization_code','client_id':_0x331ad5[_0xbd43('0x1a')],'client_secret':_0x331ad5[_0xbd43('0xe')],'redirect_uri':_0x331ad5['serverUrl'],'code':_0x331ad5[_0xbd43('0xf')]},'headers':{'Content-Type':_0xbd43('0x26')}};return rp(_0x5d13fa)[_0xbd43('0x27')](function(_0x362074){var _0x2b12a1=JSON[_0xbd43('0x1b')](_0x362074);if(_0x2b12a1['refresh_token']){_0x331ad5[_0xbd43('0x1c')]=_0x2b12a1[_0xbd43('0x1d')];logger[_0xbd43('0x28')](util['format'](_0xbd43('0x29'),_0x331ad5[_0xbd43('0x1e')],_0x331ad5['id']));}else{logger['error'](util['format'](_0xbd43('0x21'),_0x331ad5[_0xbd43('0x1e')],_0x331ad5['id']),util['inspect'](_0x2b12a1,{'showHidden':![],'depth':null}));}return _0x38666e(null,_0x434017);})['catch'](function(_0x381577){logger[_0xbd43('0x1f')](util[_0xbd43('0x20')](_0xbd43('0x21'),_0x331ad5['name'],_0x331ad5['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x38666e(_0x381577);});}else{return _0x38666e(null,_0x434017);}}}});};