6258cc34a6904fdda38c7f67b0abbd0eb5b32c94
[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 _0x8bb8=['POST','/oauth/v2/token','clientSecret','application/x-www-form-urlencoded','then','refresh_token','refreshToken','info','name','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','error','format','inspect','host','substring','authorization_code','parse','lodash','util','../../config/logger','api','moment','request-promise','rimraf','./intZohoAccount.attributes','exports','ZohoAccount','changed','clientId','code','serverUrl','slice','lastIndexOf','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu'];(function(_0x4fcf10,_0x2db1c9){var _0x474d90=function(_0x2997b7){while(--_0x2997b7){_0x4fcf10['push'](_0x4fcf10['shift']());}};_0x474d90(++_0x2db1c9);}(_0x8bb8,0x17a));var _0x88bb=function(_0x4ff28a,_0x3bc3e0){_0x4ff28a=_0x4ff28a-0x0;var _0x374314=_0x8bb8[_0x4ff28a];return _0x374314;};'use strict';var _=require(_0x88bb('0x0'));var util=require(_0x88bb('0x1'));var logger=require(_0x88bb('0x2'))(_0x88bb('0x3'));var moment=require(_0x88bb('0x4'));var BPromise=require('bluebird');var rp=require(_0x88bb('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x88bb('0x6'));var config=require('../../config/environment');var attributes=require(_0x88bb('0x7'));var integrations=require('../../components/integrations/configuration');module[_0x88bb('0x8')]=function(_0x1a6b13,_0x17dba6){return _0x1a6b13['define'](_0x88bb('0x9'),attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x106c40,_0x5e3b0d,_0x2b1904){if(_0x106c40[_0x88bb('0xa')]('zone')||_0x106c40[_0x88bb('0xa')]('serverUrl')||_0x106c40[_0x88bb('0xa')](_0x88bb('0xb'))||_0x106c40['changed']('clientSecret')||_0x106c40['changed'](_0x88bb('0xc'))||_0x106c40[_0x88bb('0xa')]('host')){var _0x1403e7,_0x15e5ea;_0x1403e7=_0x106c40[_0x88bb('0xd')];var _0x3c529a=_0x1403e7[_0x88bb('0xe')](-0x1);if(_0x3c529a==='/'||_0x3c529a==='\x5c'||_0x3c529a===':'){_0x1403e7=_0x1403e7['substring'](0x0,_0x1403e7[_0x88bb('0xf')](_0x3c529a));}switch(_0x106c40[_0x88bb('0x10')]){case'US':_0x15e5ea=_0x88bb('0x11');break;case'AU':_0x15e5ea=_0x88bb('0x12');break;case'IN':_0x15e5ea=_0x88bb('0x13');break;case'CN':_0x15e5ea=_0x88bb('0x14');break;default:_0x15e5ea=_0x88bb('0x15');break;}var _0x5408bc={'method':_0x88bb('0x16'),'uri':_0x15e5ea+_0x88bb('0x17'),'form':{'grant_type':'authorization_code','client_id':_0x106c40[_0x88bb('0xb')],'client_secret':_0x106c40[_0x88bb('0x18')],'redirect_uri':_0x106c40[_0x88bb('0xd')],'code':_0x106c40[_0x88bb('0xc')]},'headers':{'Content-Type':_0x88bb('0x19')}};return rp(_0x5408bc)[_0x88bb('0x1a')](function(_0x5d8144){var _0x4c9ad7=JSON['parse'](_0x5d8144);if(_0x4c9ad7[_0x88bb('0x1b')]){_0x106c40[_0x88bb('0x1c')]=_0x4c9ad7['refresh_token'];logger[_0x88bb('0x1d')](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x106c40[_0x88bb('0x1e')],_0x106c40['id']));}else{logger['error'](util['format'](_0x88bb('0x1f'),_0x106c40[_0x88bb('0x1e')],_0x106c40['id']),util['inspect'](_0x4c9ad7,{'showHidden':![],'depth':null}));}return _0x2b1904(null,_0x5e3b0d);})[_0x88bb('0x20')](function(_0x2028ae){logger[_0x88bb('0x21')](util[_0x88bb('0x22')](_0x88bb('0x1f'),_0x106c40[_0x88bb('0x1e')],_0x106c40['id']),util[_0x88bb('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x2b1904(_0x2028ae);});}else{return _0x2b1904(null,_0x5e3b0d);}},'beforeUpdate':function(_0x13de82,_0x949815,_0x3e1e0d){if(_0x13de82[_0x88bb('0xa')](_0x88bb('0x10'))||_0x13de82[_0x88bb('0xa')](_0x88bb('0xd'))||_0x13de82[_0x88bb('0xa')](_0x88bb('0xb'))||_0x13de82[_0x88bb('0xa')]('clientSecret')||_0x13de82['changed'](_0x88bb('0xc'))||_0x13de82['changed'](_0x88bb('0x24'))){var _0xf1c4f4,_0x226443;_0xf1c4f4=_0x13de82[_0x88bb('0xd')];var _0x2744e4=_0xf1c4f4[_0x88bb('0xe')](-0x1);if(_0x2744e4==='/'||_0x2744e4==='\x5c'||_0x2744e4===':'){_0xf1c4f4=_0xf1c4f4[_0x88bb('0x25')](0x0,_0xf1c4f4[_0x88bb('0xf')](_0x2744e4));}switch(_0x13de82[_0x88bb('0x10')]){case'US':_0x226443=_0x88bb('0x11');break;case'AU':_0x226443=_0x88bb('0x12');break;case'IN':_0x226443='https://accounts.zoho.in';break;case'CN':_0x226443=_0x88bb('0x14');break;default:_0x226443=_0x88bb('0x15');break;}var _0x560f06={'method':_0x88bb('0x16'),'uri':_0x226443+'/oauth/v2/token','form':{'grant_type':_0x88bb('0x26'),'client_id':_0x13de82[_0x88bb('0xb')],'client_secret':_0x13de82[_0x88bb('0x18')],'redirect_uri':_0x13de82[_0x88bb('0xd')],'code':_0x13de82[_0x88bb('0xc')]},'headers':{'Content-Type':_0x88bb('0x19')}};return rp(_0x560f06)[_0x88bb('0x1a')](function(_0x1f1f2e){var _0x417090=JSON[_0x88bb('0x27')](_0x1f1f2e);if(_0x417090[_0x88bb('0x1b')]){_0x13de82[_0x88bb('0x1c')]=_0x417090[_0x88bb('0x1b')];logger['info'](util[_0x88bb('0x22')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x13de82[_0x88bb('0x1e')],_0x13de82['id']));}else{logger[_0x88bb('0x21')](util[_0x88bb('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x13de82[_0x88bb('0x1e')],_0x13de82['id']),util['inspect'](_0x417090,{'showHidden':![],'depth':null}));}return _0x3e1e0d(null,_0x949815);})[_0x88bb('0x20')](function(_0x14b43b){logger[_0x88bb('0x21')](util['format'](_0x88bb('0x1f'),_0x13de82[_0x88bb('0x1e')],_0x13de82['id']),util[_0x88bb('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x3e1e0d(_0x14b43b);});}else{return _0x3e1e0d(null,_0x949815);}}}});};