Built motion from commit 97153652.|2.6.26
[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 _0x583c=['../../config/logger','api','moment','bluebird','request-promise','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','clientId','clientSecret','code','host','serverUrl','slice','substring','zone','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','application/x-www-form-urlencoded','parse','refreshToken','refresh_token','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','error','name','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','then'];(function(_0x3e2fcf,_0x579110){var _0x497db7=function(_0x2f713d){while(--_0x2f713d){_0x3e2fcf['push'](_0x3e2fcf['shift']());}};_0x497db7(++_0x579110);}(_0x583c,0xac));var _0xc583=function(_0x29c261,_0x3af39a){_0x29c261=_0x29c261-0x0;var _0x1a9335=_0x583c[_0x29c261];return _0x1a9335;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xc583('0x0'))(_0xc583('0x1'));var moment=require(_0xc583('0x2'));var BPromise=require(_0xc583('0x3'));var rp=require(_0xc583('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xc583('0x5'));var attributes=require(_0xc583('0x6'));var integrations=require(_0xc583('0x7'));module[_0xc583('0x8')]=function(_0x3ad923,_0x1ace1b){return _0x3ad923[_0xc583('0x9')](_0xc583('0xa'),attributes,{'tableName':_0xc583('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x5c57da,_0x478b25,_0x50a6cf){if(_0x5c57da['changed']('zone')||_0x5c57da[_0xc583('0xc')]('serverUrl')||_0x5c57da[_0xc583('0xc')](_0xc583('0xd'))||_0x5c57da[_0xc583('0xc')](_0xc583('0xe'))||_0x5c57da[_0xc583('0xc')](_0xc583('0xf'))||_0x5c57da[_0xc583('0xc')](_0xc583('0x10'))){var _0x2163e2,_0x1eee99;_0x2163e2=_0x5c57da[_0xc583('0x11')];var _0x56e26a=_0x2163e2[_0xc583('0x12')](-0x1);if(_0x56e26a==='/'||_0x56e26a==='\x5c'||_0x56e26a===':'){_0x2163e2=_0x2163e2[_0xc583('0x13')](0x0,_0x2163e2['lastIndexOf'](_0x56e26a));}switch(_0x5c57da[_0xc583('0x14')]){case'US':_0x1eee99='https://accounts.zoho.com';break;case'AU':_0x1eee99='https://accounts.zoho.com.au';break;case'IN':_0x1eee99='https://accounts.zoho.in';break;case'CN':_0x1eee99=_0xc583('0x15');break;default:_0x1eee99=_0xc583('0x16');break;}var _0x2faee1={'method':_0xc583('0x17'),'uri':_0x1eee99+_0xc583('0x18'),'form':{'grant_type':_0xc583('0x19'),'client_id':_0x5c57da[_0xc583('0xd')],'client_secret':_0x5c57da['clientSecret'],'redirect_uri':_0x5c57da[_0xc583('0x11')],'code':_0x5c57da[_0xc583('0xf')]},'headers':{'Content-Type':_0xc583('0x1a')}};return rp(_0x2faee1)['then'](function(_0x1f857e){var _0x2e1be0=JSON[_0xc583('0x1b')](_0x1f857e);if(_0x2e1be0['refresh_token']){_0x5c57da[_0xc583('0x1c')]=_0x2e1be0[_0xc583('0x1d')];logger[_0xc583('0x1e')](util[_0xc583('0x1f')](_0xc583('0x20'),_0x5c57da['name'],_0x5c57da['id']));}else{logger['error'](util[_0xc583('0x1f')](_0xc583('0x21'),_0x5c57da['name'],_0x5c57da['id']),util[_0xc583('0x22')](_0x2e1be0,{'showHidden':![],'depth':null}));}return _0x50a6cf(null,_0x478b25);})[_0xc583('0x23')](function(_0x187c96){logger[_0xc583('0x24')](util[_0xc583('0x1f')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x5c57da[_0xc583('0x25')],_0x5c57da['id']),util[_0xc583('0x22')](parsedResult,{'showHidden':![],'depth':null}));return _0x50a6cf(_0x187c96);});}else{return _0x50a6cf(null,_0x478b25);}},'beforeUpdate':function(_0x58cb1f,_0x16fdee,_0x2446ce){if(_0x58cb1f['changed'](_0xc583('0x14'))||_0x58cb1f[_0xc583('0xc')](_0xc583('0x11'))||_0x58cb1f[_0xc583('0xc')](_0xc583('0xd'))||_0x58cb1f['changed']('clientSecret')||_0x58cb1f[_0xc583('0xc')]('code')||_0x58cb1f[_0xc583('0xc')]('host')){var _0x44bff4,_0x43ed1d;_0x44bff4=_0x58cb1f[_0xc583('0x11')];var _0x2931a6=_0x44bff4[_0xc583('0x12')](-0x1);if(_0x2931a6==='/'||_0x2931a6==='\x5c'||_0x2931a6===':'){_0x44bff4=_0x44bff4[_0xc583('0x13')](0x0,_0x44bff4[_0xc583('0x26')](_0x2931a6));}switch(_0x58cb1f['zone']){case'US':_0x43ed1d=_0xc583('0x27');break;case'AU':_0x43ed1d=_0xc583('0x28');break;case'IN':_0x43ed1d=_0xc583('0x29');break;case'CN':_0x43ed1d=_0xc583('0x15');break;default:_0x43ed1d='https://accounts.zoho.eu';break;}var _0x20919e={'method':_0xc583('0x17'),'uri':_0x43ed1d+_0xc583('0x18'),'form':{'grant_type':_0xc583('0x19'),'client_id':_0x58cb1f[_0xc583('0xd')],'client_secret':_0x58cb1f[_0xc583('0xe')],'redirect_uri':_0x58cb1f['serverUrl'],'code':_0x58cb1f['code']},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x20919e)[_0xc583('0x2a')](function(_0x31175c){var _0x353170=JSON[_0xc583('0x1b')](_0x31175c);if(_0x353170[_0xc583('0x1d')]){_0x58cb1f['refreshToken']=_0x353170[_0xc583('0x1d')];logger[_0xc583('0x1e')](util[_0xc583('0x1f')](_0xc583('0x20'),_0x58cb1f['name'],_0x58cb1f['id']));}else{logger[_0xc583('0x24')](util[_0xc583('0x1f')](_0xc583('0x21'),_0x58cb1f['name'],_0x58cb1f['id']),util[_0xc583('0x22')](_0x353170,{'showHidden':![],'depth':null}));}return _0x2446ce(null,_0x16fdee);})['catch'](function(_0x4334f5){logger['error'](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x58cb1f[_0xc583('0x25')],_0x58cb1f['id']),util[_0xc583('0x22')](parsedResult,{'showHidden':![],'depth':null}));return _0x2446ce(_0x4334f5);});}else{return _0x2446ce(null,_0x16fdee);}}}});};