Built motion from commit (unavailable).|2.5.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 _0x851b=['inspect','catch','https://accounts.zoho.com.au','/oauth/v2/token','then','parse','lodash','../../config/logger','api','moment','request-promise','path','../../config/environment','./intZohoAccount.attributes','exports','ZohoAccount','changed','clientId','clientSecret','code','host','slice','zone','https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code','serverUrl','refresh_token','refreshToken','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'];(function(_0x71d4f3,_0x4662e1){var _0x330245=function(_0xf57e25){while(--_0xf57e25){_0x71d4f3['push'](_0x71d4f3['shift']());}};_0x330245(++_0x4662e1);}(_0x851b,0x1a8));var _0xb851=function(_0x3cd005,_0x4c995a){_0x3cd005=_0x3cd005-0x0;var _0x3e7d8b=_0x851b[_0x3cd005];return _0x3e7d8b;};'use strict';var _=require(_0xb851('0x0'));var util=require('util');var logger=require(_0xb851('0x1'))(_0xb851('0x2'));var moment=require(_0xb851('0x3'));var BPromise=require('bluebird');var rp=require(_0xb851('0x4'));var fs=require('fs');var path=require(_0xb851('0x5'));var rimraf=require('rimraf');var config=require(_0xb851('0x6'));var attributes=require(_0xb851('0x7'));var integrations=require('../../components/integrations/configuration');module[_0xb851('0x8')]=function(_0x33f01f,_0x133aee){return _0x33f01f['define'](_0xb851('0x9'),attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x163b37,_0x4dfeaf,_0x7d10f9){if(_0x163b37[_0xb851('0xa')]('zone')||_0x163b37['changed']('serverUrl')||_0x163b37[_0xb851('0xa')](_0xb851('0xb'))||_0x163b37[_0xb851('0xa')](_0xb851('0xc'))||_0x163b37[_0xb851('0xa')](_0xb851('0xd'))||_0x163b37[_0xb851('0xa')](_0xb851('0xe'))){var _0x337fd9,_0x15f158;_0x337fd9=_0x163b37['serverUrl'];var _0x2a6827=_0x337fd9[_0xb851('0xf')](-0x1);if(_0x2a6827==='/'||_0x2a6827==='\x5c'||_0x2a6827===':'){_0x337fd9=_0x337fd9['substring'](0x0,_0x337fd9['lastIndexOf'](_0x2a6827));}switch(_0x163b37[_0xb851('0x10')]){case'US':_0x15f158=_0xb851('0x11');break;case'AU':_0x15f158='https://accounts.zoho.com.au';break;case'IN':_0x15f158=_0xb851('0x12');break;case'CN':_0x15f158=_0xb851('0x13');break;default:_0x15f158=_0xb851('0x14');break;}var _0x3492c0={'method':_0xb851('0x15'),'uri':_0x15f158+'/oauth/v2/token','form':{'grant_type':_0xb851('0x16'),'client_id':_0x163b37[_0xb851('0xb')],'client_secret':_0x163b37['clientSecret'],'redirect_uri':_0x163b37[_0xb851('0x17')],'code':_0x163b37[_0xb851('0xd')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x3492c0)['then'](function(_0x4a3d28){var _0x43d27e=JSON['parse'](_0x4a3d28);if(_0x43d27e[_0xb851('0x18')]){_0x163b37[_0xb851('0x19')]=_0x43d27e[_0xb851('0x18')];logger[_0xb851('0x1a')](util['format'](_0xb851('0x1b'),_0x163b37[_0xb851('0x1c')],_0x163b37['id']));}else{logger[_0xb851('0x1d')](util[_0xb851('0x1e')](_0xb851('0x1f'),_0x163b37[_0xb851('0x1c')],_0x163b37['id']),util[_0xb851('0x20')](_0x43d27e,{'showHidden':![],'depth':null}));}return _0x7d10f9(null,_0x4dfeaf);})[_0xb851('0x21')](function(_0x3c6ced){logger[_0xb851('0x1d')](util[_0xb851('0x1e')](_0xb851('0x1f'),_0x163b37[_0xb851('0x1c')],_0x163b37['id']),util[_0xb851('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x7d10f9(_0x3c6ced);});}else{return _0x7d10f9(null,_0x4dfeaf);}},'beforeUpdate':function(_0x222d00,_0x20409e,_0x4040d0){if(_0x222d00[_0xb851('0xa')]('zone')||_0x222d00['changed'](_0xb851('0x17'))||_0x222d00[_0xb851('0xa')](_0xb851('0xb'))||_0x222d00[_0xb851('0xa')]('clientSecret')||_0x222d00['changed']('code')||_0x222d00['changed'](_0xb851('0xe'))){var _0x59c1c2,_0x3b4e08;_0x59c1c2=_0x222d00[_0xb851('0x17')];var _0x434e2f=_0x59c1c2[_0xb851('0xf')](-0x1);if(_0x434e2f==='/'||_0x434e2f==='\x5c'||_0x434e2f===':'){_0x59c1c2=_0x59c1c2['substring'](0x0,_0x59c1c2['lastIndexOf'](_0x434e2f));}switch(_0x222d00[_0xb851('0x10')]){case'US':_0x3b4e08=_0xb851('0x11');break;case'AU':_0x3b4e08=_0xb851('0x22');break;case'IN':_0x3b4e08='https://accounts.zoho.in';break;case'CN':_0x3b4e08='https://accounts.zoho.com.cn';break;default:_0x3b4e08=_0xb851('0x14');break;}var _0x46b83f={'method':_0xb851('0x15'),'uri':_0x3b4e08+_0xb851('0x23'),'form':{'grant_type':_0xb851('0x16'),'client_id':_0x222d00[_0xb851('0xb')],'client_secret':_0x222d00[_0xb851('0xc')],'redirect_uri':_0x222d00[_0xb851('0x17')],'code':_0x222d00['code']},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x46b83f)[_0xb851('0x24')](function(_0x980c1e){var _0x823c7b=JSON[_0xb851('0x25')](_0x980c1e);if(_0x823c7b[_0xb851('0x18')]){_0x222d00[_0xb851('0x19')]=_0x823c7b[_0xb851('0x18')];logger['info'](util[_0xb851('0x1e')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x222d00[_0xb851('0x1c')],_0x222d00['id']));}else{logger[_0xb851('0x1d')](util[_0xb851('0x1e')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x222d00['name'],_0x222d00['id']),util['inspect'](_0x823c7b,{'showHidden':![],'depth':null}));}return _0x4040d0(null,_0x20409e);})[_0xb851('0x21')](function(_0x130a6b){logger[_0xb851('0x1d')](util[_0xb851('0x1e')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x222d00[_0xb851('0x1c')],_0x222d00['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x4040d0(_0x130a6b);});}else{return _0x4040d0(null,_0x20409e);}}}});};