Built motion from commit 85328c08.|2.5.50
[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 _0xe91b=['info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','slice','/oauth/v2/token','refreshToken','catch','lodash','util','../../config/logger','moment','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','host','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','authorization_code','code','application/x-www-form-urlencoded','then','parse','refresh_token'];(function(_0x49cf09,_0x389ba2){var _0x5b2014=function(_0x2961b5){while(--_0x2961b5){_0x49cf09['push'](_0x49cf09['shift']());}};_0x5b2014(++_0x389ba2);}(_0xe91b,0x15b));var _0xbe91=function(_0xbe40ad,_0x44343c){_0xbe40ad=_0xbe40ad-0x0;var _0x50fac9=_0xe91b[_0xbe40ad];return _0x50fac9;};'use strict';var _=require(_0xbe91('0x0'));var util=require(_0xbe91('0x1'));var logger=require(_0xbe91('0x2'))('api');var moment=require(_0xbe91('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xbe91('0x4'));var config=require(_0xbe91('0x5'));var attributes=require(_0xbe91('0x6'));var integrations=require(_0xbe91('0x7'));module[_0xbe91('0x8')]=function(_0x1e9912,_0x240cd1){return _0x1e9912[_0xbe91('0x9')](_0xbe91('0xa'),attributes,{'tableName':_0xbe91('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x1655c9,_0x20396b,_0x475333){if(_0x1655c9[_0xbe91('0xc')](_0xbe91('0xd'))||_0x1655c9[_0xbe91('0xc')](_0xbe91('0xe'))||_0x1655c9[_0xbe91('0xc')](_0xbe91('0xf'))||_0x1655c9[_0xbe91('0xc')](_0xbe91('0x10'))||_0x1655c9[_0xbe91('0xc')]('code')||_0x1655c9[_0xbe91('0xc')](_0xbe91('0x11'))){var _0x863ea9,_0xed150c;_0x863ea9=_0x1655c9['serverUrl'];var _0xa01185=_0x863ea9['slice'](-0x1);if(_0xa01185==='/'||_0xa01185==='\x5c'||_0xa01185===':'){_0x863ea9=_0x863ea9[_0xbe91('0x12')](0x0,_0x863ea9[_0xbe91('0x13')](_0xa01185));}switch(_0x1655c9[_0xbe91('0xd')]){case'US':_0xed150c=_0xbe91('0x14');break;case'AU':_0xed150c=_0xbe91('0x15');break;case'IN':_0xed150c=_0xbe91('0x16');break;case'CN':_0xed150c=_0xbe91('0x17');break;default:_0xed150c=_0xbe91('0x18');break;}var _0x18f322={'method':'POST','uri':_0xed150c+'/oauth/v2/token','form':{'grant_type':_0xbe91('0x19'),'client_id':_0x1655c9['clientId'],'client_secret':_0x1655c9[_0xbe91('0x10')],'redirect_uri':_0x1655c9[_0xbe91('0xe')],'code':_0x1655c9[_0xbe91('0x1a')]},'headers':{'Content-Type':_0xbe91('0x1b')}};return rp(_0x18f322)[_0xbe91('0x1c')](function(_0x2ec244){var _0xe68c2d=JSON[_0xbe91('0x1d')](_0x2ec244);if(_0xe68c2d['refresh_token']){_0x1655c9['refreshToken']=_0xe68c2d[_0xbe91('0x1e')];logger[_0xbe91('0x1f')](util['format'](_0xbe91('0x20'),_0x1655c9[_0xbe91('0x21')],_0x1655c9['id']));}else{logger[_0xbe91('0x22')](util[_0xbe91('0x23')](_0xbe91('0x24'),_0x1655c9[_0xbe91('0x21')],_0x1655c9['id']),util['inspect'](_0xe68c2d,{'showHidden':![],'depth':null}));}return _0x475333(null,_0x20396b);})['catch'](function(_0x57c5dd){logger[_0xbe91('0x22')](util[_0xbe91('0x23')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1655c9[_0xbe91('0x21')],_0x1655c9['id']),util[_0xbe91('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x475333(_0x57c5dd);});}else{return _0x475333(null,_0x20396b);}},'beforeUpdate':function(_0x141596,_0xc433f6,_0x25cc96){if(_0x141596[_0xbe91('0xc')](_0xbe91('0xd'))||_0x141596[_0xbe91('0xc')]('serverUrl')||_0x141596[_0xbe91('0xc')](_0xbe91('0xf'))||_0x141596[_0xbe91('0xc')](_0xbe91('0x10'))||_0x141596['changed'](_0xbe91('0x1a'))||_0x141596[_0xbe91('0xc')](_0xbe91('0x11'))){var _0x2daba6,_0x2fe8ac;_0x2daba6=_0x141596[_0xbe91('0xe')];var _0x267fa4=_0x2daba6[_0xbe91('0x26')](-0x1);if(_0x267fa4==='/'||_0x267fa4==='\x5c'||_0x267fa4===':'){_0x2daba6=_0x2daba6[_0xbe91('0x12')](0x0,_0x2daba6[_0xbe91('0x13')](_0x267fa4));}switch(_0x141596[_0xbe91('0xd')]){case'US':_0x2fe8ac='https://accounts.zoho.com';break;case'AU':_0x2fe8ac='https://accounts.zoho.com.au';break;case'IN':_0x2fe8ac=_0xbe91('0x16');break;case'CN':_0x2fe8ac=_0xbe91('0x17');break;default:_0x2fe8ac=_0xbe91('0x18');break;}var _0x370dd2={'method':'POST','uri':_0x2fe8ac+_0xbe91('0x27'),'form':{'grant_type':_0xbe91('0x19'),'client_id':_0x141596[_0xbe91('0xf')],'client_secret':_0x141596['clientSecret'],'redirect_uri':_0x141596[_0xbe91('0xe')],'code':_0x141596[_0xbe91('0x1a')]},'headers':{'Content-Type':_0xbe91('0x1b')}};return rp(_0x370dd2)['then'](function(_0x580722){var _0x3294d7=JSON[_0xbe91('0x1d')](_0x580722);if(_0x3294d7[_0xbe91('0x1e')]){_0x141596[_0xbe91('0x28')]=_0x3294d7[_0xbe91('0x1e')];logger[_0xbe91('0x1f')](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x141596[_0xbe91('0x21')],_0x141596['id']));}else{logger['error'](util[_0xbe91('0x23')](_0xbe91('0x24'),_0x141596[_0xbe91('0x21')],_0x141596['id']),util[_0xbe91('0x25')](_0x3294d7,{'showHidden':![],'depth':null}));}return _0x25cc96(null,_0xc433f6);})[_0xbe91('0x29')](function(_0x1262eb){logger[_0xbe91('0x22')](util[_0xbe91('0x23')](_0xbe91('0x24'),_0x141596[_0xbe91('0x21')],_0x141596['id']),util[_0xbe91('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x25cc96(_0x1262eb);});}else{return _0x25cc96(null,_0xc433f6);}}}});};