Built motion from commit 994c64e1.|2.6.1
[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 _0x48c3=['api','moment','bluebird','path','rimraf','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','int_zoho_accounts','changed','zone','serverUrl','clientId','code','host','slice','substring','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','application/x-www-form-urlencoded','then','refresh_token','refreshToken','info','format','error','name','inspect','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','clientSecret','lastIndexOf','https://accounts.zoho.in','parse','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','catch','util','../../config/logger'];(function(_0x1250c9,_0x4034c2){var _0x6fbaa=function(_0x368ea0){while(--_0x368ea0){_0x1250c9['push'](_0x1250c9['shift']());}};_0x6fbaa(++_0x4034c2);}(_0x48c3,0xd0));var _0x348c=function(_0x4f9ebe,_0x4dc712){_0x4f9ebe=_0x4f9ebe-0x0;var _0x3f1b97=_0x48c3[_0x4f9ebe];return _0x3f1b97;};'use strict';var _=require('lodash');var util=require(_0x348c('0x0'));var logger=require(_0x348c('0x1'))(_0x348c('0x2'));var moment=require(_0x348c('0x3'));var BPromise=require(_0x348c('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x348c('0x5'));var rimraf=require(_0x348c('0x6'));var config=require('../../config/environment');var attributes=require(_0x348c('0x7'));var integrations=require(_0x348c('0x8'));module[_0x348c('0x9')]=function(_0x3b9a07,_0xdeff52){return _0x3b9a07[_0x348c('0xa')]('ZohoAccount',attributes,{'tableName':_0x348c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x11f74c,_0x3abce0,_0x7bf398){if(_0x11f74c[_0x348c('0xc')](_0x348c('0xd'))||_0x11f74c[_0x348c('0xc')](_0x348c('0xe'))||_0x11f74c['changed'](_0x348c('0xf'))||_0x11f74c[_0x348c('0xc')]('clientSecret')||_0x11f74c[_0x348c('0xc')](_0x348c('0x10'))||_0x11f74c[_0x348c('0xc')](_0x348c('0x11'))){var _0x2d2d4e,_0x8ae661;_0x2d2d4e=_0x11f74c[_0x348c('0xe')];var _0x39b60e=_0x2d2d4e[_0x348c('0x12')](-0x1);if(_0x39b60e==='/'||_0x39b60e==='\x5c'||_0x39b60e===':'){_0x2d2d4e=_0x2d2d4e[_0x348c('0x13')](0x0,_0x2d2d4e['lastIndexOf'](_0x39b60e));}switch(_0x11f74c['zone']){case'US':_0x8ae661=_0x348c('0x14');break;case'AU':_0x8ae661=_0x348c('0x15');break;case'IN':_0x8ae661='https://accounts.zoho.in';break;case'CN':_0x8ae661=_0x348c('0x16');break;default:_0x8ae661=_0x348c('0x17');break;}var _0x5dfb1c={'method':_0x348c('0x18'),'uri':_0x8ae661+_0x348c('0x19'),'form':{'grant_type':'authorization_code','client_id':_0x11f74c[_0x348c('0xf')],'client_secret':_0x11f74c['clientSecret'],'redirect_uri':_0x11f74c[_0x348c('0xe')],'code':_0x11f74c[_0x348c('0x10')]},'headers':{'Content-Type':_0x348c('0x1a')}};return rp(_0x5dfb1c)[_0x348c('0x1b')](function(_0x4d1b96){var _0x16535b=JSON['parse'](_0x4d1b96);if(_0x16535b[_0x348c('0x1c')]){_0x11f74c[_0x348c('0x1d')]=_0x16535b[_0x348c('0x1c')];logger[_0x348c('0x1e')](util[_0x348c('0x1f')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x11f74c['name'],_0x11f74c['id']));}else{logger[_0x348c('0x20')](util[_0x348c('0x1f')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x11f74c[_0x348c('0x21')],_0x11f74c['id']),util[_0x348c('0x22')](_0x16535b,{'showHidden':![],'depth':null}));}return _0x7bf398(null,_0x3abce0);})['catch'](function(_0x19138e){logger[_0x348c('0x20')](util[_0x348c('0x1f')](_0x348c('0x23'),_0x11f74c[_0x348c('0x21')],_0x11f74c['id']),util[_0x348c('0x22')](parsedResult,{'showHidden':![],'depth':null}));return _0x7bf398(_0x19138e);});}else{return _0x7bf398(null,_0x3abce0);}},'beforeUpdate':function(_0x478c1c,_0x2c6b77,_0x4201c9){if(_0x478c1c['changed'](_0x348c('0xd'))||_0x478c1c[_0x348c('0xc')]('serverUrl')||_0x478c1c[_0x348c('0xc')](_0x348c('0xf'))||_0x478c1c['changed'](_0x348c('0x24'))||_0x478c1c[_0x348c('0xc')](_0x348c('0x10'))||_0x478c1c[_0x348c('0xc')](_0x348c('0x11'))){var _0x4968f8,_0x4391b6;_0x4968f8=_0x478c1c[_0x348c('0xe')];var _0x23b5b7=_0x4968f8['slice'](-0x1);if(_0x23b5b7==='/'||_0x23b5b7==='\x5c'||_0x23b5b7===':'){_0x4968f8=_0x4968f8[_0x348c('0x13')](0x0,_0x4968f8[_0x348c('0x25')](_0x23b5b7));}switch(_0x478c1c[_0x348c('0xd')]){case'US':_0x4391b6=_0x348c('0x14');break;case'AU':_0x4391b6=_0x348c('0x15');break;case'IN':_0x4391b6=_0x348c('0x26');break;case'CN':_0x4391b6=_0x348c('0x16');break;default:_0x4391b6='https://accounts.zoho.eu';break;}var _0x410153={'method':_0x348c('0x18'),'uri':_0x4391b6+_0x348c('0x19'),'form':{'grant_type':'authorization_code','client_id':_0x478c1c[_0x348c('0xf')],'client_secret':_0x478c1c[_0x348c('0x24')],'redirect_uri':_0x478c1c[_0x348c('0xe')],'code':_0x478c1c[_0x348c('0x10')]},'headers':{'Content-Type':_0x348c('0x1a')}};return rp(_0x410153)[_0x348c('0x1b')](function(_0x2a45a0){var _0xf8c710=JSON[_0x348c('0x27')](_0x2a45a0);if(_0xf8c710[_0x348c('0x1c')]){_0x478c1c[_0x348c('0x1d')]=_0xf8c710[_0x348c('0x1c')];logger[_0x348c('0x1e')](util[_0x348c('0x1f')](_0x348c('0x28'),_0x478c1c[_0x348c('0x21')],_0x478c1c['id']));}else{logger[_0x348c('0x20')](util['format'](_0x348c('0x23'),_0x478c1c[_0x348c('0x21')],_0x478c1c['id']),util['inspect'](_0xf8c710,{'showHidden':![],'depth':null}));}return _0x4201c9(null,_0x2c6b77);})[_0x348c('0x29')](function(_0x2b4220){logger[_0x348c('0x20')](util[_0x348c('0x1f')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x478c1c[_0x348c('0x21')],_0x478c1c['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x4201c9(_0x2b4220);});}else{return _0x4201c9(null,_0x2c6b77);}}}});};