Built motion from commit (unavailable).|2.5.21
[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 _0x5d84=['error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','catch','substring','lastIndexOf','authorization_code','code','then','refreshToken','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','host','slice','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','application/x-www-form-urlencoded','parse','refresh_token','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d'];(function(_0x4b2c43,_0x24a976){var _0x3f80d5=function(_0xcb54ad){while(--_0xcb54ad){_0x4b2c43['push'](_0x4b2c43['shift']());}};_0x3f80d5(++_0x24a976);}(_0x5d84,0x8f));var _0x45d8=function(_0x367ac7,_0x228047){_0x367ac7=_0x367ac7-0x0;var _0x296f52=_0x5d84[_0x367ac7];return _0x296f52;};'use strict';var _=require('lodash');var util=require(_0x45d8('0x0'));var logger=require(_0x45d8('0x1'))(_0x45d8('0x2'));var moment=require('moment');var BPromise=require(_0x45d8('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x45d8('0x4'));var rimraf=require(_0x45d8('0x5'));var config=require(_0x45d8('0x6'));var attributes=require(_0x45d8('0x7'));var integrations=require(_0x45d8('0x8'));module[_0x45d8('0x9')]=function(_0x3f7cd9,_0x9184ea){return _0x3f7cd9[_0x45d8('0xa')](_0x45d8('0xb'),attributes,{'tableName':_0x45d8('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x1ea792,_0x45b45e,_0x567be2){if(_0x1ea792[_0x45d8('0xd')](_0x45d8('0xe'))||_0x1ea792[_0x45d8('0xd')](_0x45d8('0xf'))||_0x1ea792[_0x45d8('0xd')](_0x45d8('0x10'))||_0x1ea792[_0x45d8('0xd')](_0x45d8('0x11'))||_0x1ea792[_0x45d8('0xd')]('code')||_0x1ea792[_0x45d8('0xd')](_0x45d8('0x12'))){var _0x5ec76c,_0x21f11a;_0x5ec76c=_0x1ea792[_0x45d8('0xf')];var _0x131f01=_0x5ec76c[_0x45d8('0x13')](-0x1);if(_0x131f01==='/'||_0x131f01==='\x5c'||_0x131f01===':'){_0x5ec76c=_0x5ec76c['substring'](0x0,_0x5ec76c['lastIndexOf'](_0x131f01));}switch(_0x1ea792[_0x45d8('0xe')]){case'US':_0x21f11a=_0x45d8('0x14');break;case'AU':_0x21f11a=_0x45d8('0x15');break;case'IN':_0x21f11a=_0x45d8('0x16');break;case'CN':_0x21f11a=_0x45d8('0x17');break;default:_0x21f11a=_0x45d8('0x18');break;}var _0x11ab39={'method':_0x45d8('0x19'),'uri':_0x21f11a+_0x45d8('0x1a'),'form':{'grant_type':'authorization_code','client_id':_0x1ea792[_0x45d8('0x10')],'client_secret':_0x1ea792[_0x45d8('0x11')],'redirect_uri':_0x1ea792['serverUrl'],'code':_0x1ea792['code']},'headers':{'Content-Type':_0x45d8('0x1b')}};return rp(_0x11ab39)['then'](function(_0x3ac321){var _0x51a59f=JSON[_0x45d8('0x1c')](_0x3ac321);if(_0x51a59f['refresh_token']){_0x1ea792['refreshToken']=_0x51a59f[_0x45d8('0x1d')];logger[_0x45d8('0x1e')](util[_0x45d8('0x1f')](_0x45d8('0x20'),_0x1ea792['name'],_0x1ea792['id']));}else{logger[_0x45d8('0x21')](util['format'](_0x45d8('0x22'),_0x1ea792[_0x45d8('0x23')],_0x1ea792['id']),util[_0x45d8('0x24')](_0x51a59f,{'showHidden':![],'depth':null}));}return _0x567be2(null,_0x45b45e);})[_0x45d8('0x25')](function(_0x3f787d){logger[_0x45d8('0x21')](util[_0x45d8('0x1f')](_0x45d8('0x22'),_0x1ea792[_0x45d8('0x23')],_0x1ea792['id']),util[_0x45d8('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x567be2(_0x3f787d);});}else{return _0x567be2(null,_0x45b45e);}},'beforeUpdate':function(_0x35bcc0,_0x543ff4,_0x57e307){if(_0x35bcc0[_0x45d8('0xd')](_0x45d8('0xe'))||_0x35bcc0['changed'](_0x45d8('0xf'))||_0x35bcc0['changed'](_0x45d8('0x10'))||_0x35bcc0['changed'](_0x45d8('0x11'))||_0x35bcc0[_0x45d8('0xd')]('code')||_0x35bcc0[_0x45d8('0xd')]('host')){var _0x54fdb3,_0x36412d;_0x54fdb3=_0x35bcc0[_0x45d8('0xf')];var _0x2cfeef=_0x54fdb3['slice'](-0x1);if(_0x2cfeef==='/'||_0x2cfeef==='\x5c'||_0x2cfeef===':'){_0x54fdb3=_0x54fdb3[_0x45d8('0x26')](0x0,_0x54fdb3[_0x45d8('0x27')](_0x2cfeef));}switch(_0x35bcc0['zone']){case'US':_0x36412d=_0x45d8('0x14');break;case'AU':_0x36412d=_0x45d8('0x15');break;case'IN':_0x36412d='https://accounts.zoho.in';break;case'CN':_0x36412d='https://accounts.zoho.com.cn';break;default:_0x36412d=_0x45d8('0x18');break;}var _0xa7ac75={'method':_0x45d8('0x19'),'uri':_0x36412d+_0x45d8('0x1a'),'form':{'grant_type':_0x45d8('0x28'),'client_id':_0x35bcc0['clientId'],'client_secret':_0x35bcc0[_0x45d8('0x11')],'redirect_uri':_0x35bcc0[_0x45d8('0xf')],'code':_0x35bcc0[_0x45d8('0x29')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0xa7ac75)[_0x45d8('0x2a')](function(_0x314c1d){var _0xe45df1=JSON['parse'](_0x314c1d);if(_0xe45df1[_0x45d8('0x1d')]){_0x35bcc0[_0x45d8('0x2b')]=_0xe45df1[_0x45d8('0x1d')];logger['info'](util[_0x45d8('0x1f')](_0x45d8('0x20'),_0x35bcc0[_0x45d8('0x23')],_0x35bcc0['id']));}else{logger[_0x45d8('0x21')](util[_0x45d8('0x1f')](_0x45d8('0x22'),_0x35bcc0[_0x45d8('0x23')],_0x35bcc0['id']),util[_0x45d8('0x24')](_0xe45df1,{'showHidden':![],'depth':null}));}return _0x57e307(null,_0x543ff4);})[_0x45d8('0x25')](function(_0x14a7aa){logger['error'](util[_0x45d8('0x1f')](_0x45d8('0x22'),_0x35bcc0[_0x45d8('0x23')],_0x35bcc0['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x57e307(_0x14a7aa);});}else{return _0x57e307(null,_0x543ff4);}}}});};