Built motion from commit a679711e.|2.6.15
[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 _0x7537=['POST','/oauth/v2/token','authorization_code','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','info','format','name','inspect','error','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','catch','lodash','util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','./intZohoAccount.attributes','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','clientId','clientSecret','code','host','slice','substring','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.eu'];(function(_0x4a81b8,_0x26abb9){var _0x480a76=function(_0x45c2c5){while(--_0x45c2c5){_0x4a81b8['push'](_0x4a81b8['shift']());}};_0x480a76(++_0x26abb9);}(_0x7537,0x106));var _0x7753=function(_0x1c0940,_0x589a48){_0x1c0940=_0x1c0940-0x0;var _0x147d75=_0x7537[_0x1c0940];return _0x147d75;};'use strict';var _=require(_0x7753('0x0'));var util=require(_0x7753('0x1'));var logger=require(_0x7753('0x2'))(_0x7753('0x3'));var moment=require('moment');var BPromise=require(_0x7753('0x4'));var rp=require(_0x7753('0x5'));var fs=require('fs');var path=require(_0x7753('0x6'));var rimraf=require('rimraf');var config=require(_0x7753('0x7'));var attributes=require(_0x7753('0x8'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0xaadf44,_0x2a6f9d){return _0xaadf44[_0x7753('0x9')](_0x7753('0xa'),attributes,{'tableName':_0x7753('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x528dbe,_0xb3878b,_0x1702f6){if(_0x528dbe[_0x7753('0xc')]('zone')||_0x528dbe[_0x7753('0xc')](_0x7753('0xd'))||_0x528dbe[_0x7753('0xc')](_0x7753('0xe'))||_0x528dbe['changed'](_0x7753('0xf'))||_0x528dbe[_0x7753('0xc')](_0x7753('0x10'))||_0x528dbe[_0x7753('0xc')](_0x7753('0x11'))){var _0x3a8ded,_0x5e4253;_0x3a8ded=_0x528dbe[_0x7753('0xd')];var _0x38447d=_0x3a8ded[_0x7753('0x12')](-0x1);if(_0x38447d==='/'||_0x38447d==='\x5c'||_0x38447d===':'){_0x3a8ded=_0x3a8ded[_0x7753('0x13')](0x0,_0x3a8ded['lastIndexOf'](_0x38447d));}switch(_0x528dbe[_0x7753('0x14')]){case'US':_0x5e4253=_0x7753('0x15');break;case'AU':_0x5e4253=_0x7753('0x16');break;case'IN':_0x5e4253=_0x7753('0x17');break;case'CN':_0x5e4253='https://accounts.zoho.com.cn';break;default:_0x5e4253=_0x7753('0x18');break;}var _0x50cb7b={'method':_0x7753('0x19'),'uri':_0x5e4253+_0x7753('0x1a'),'form':{'grant_type':_0x7753('0x1b'),'client_id':_0x528dbe[_0x7753('0xe')],'client_secret':_0x528dbe['clientSecret'],'redirect_uri':_0x528dbe[_0x7753('0xd')],'code':_0x528dbe[_0x7753('0x10')]},'headers':{'Content-Type':_0x7753('0x1c')}};return rp(_0x50cb7b)[_0x7753('0x1d')](function(_0x2f88a7){var _0x171c97=JSON[_0x7753('0x1e')](_0x2f88a7);if(_0x171c97[_0x7753('0x1f')]){_0x528dbe[_0x7753('0x20')]=_0x171c97[_0x7753('0x1f')];logger[_0x7753('0x21')](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x528dbe['name'],_0x528dbe['id']));}else{logger['error'](util[_0x7753('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x528dbe[_0x7753('0x23')],_0x528dbe['id']),util[_0x7753('0x24')](_0x171c97,{'showHidden':![],'depth':null}));}return _0x1702f6(null,_0xb3878b);})['catch'](function(_0x398676){logger[_0x7753('0x25')](util[_0x7753('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x528dbe[_0x7753('0x23')],_0x528dbe['id']),util[_0x7753('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x1702f6(_0x398676);});}else{return _0x1702f6(null,_0xb3878b);}},'beforeUpdate':function(_0x5ee77e,_0xa19fec,_0x5d5925){if(_0x5ee77e['changed'](_0x7753('0x14'))||_0x5ee77e['changed'](_0x7753('0xd'))||_0x5ee77e[_0x7753('0xc')](_0x7753('0xe'))||_0x5ee77e[_0x7753('0xc')](_0x7753('0xf'))||_0x5ee77e[_0x7753('0xc')](_0x7753('0x10'))||_0x5ee77e[_0x7753('0xc')](_0x7753('0x11'))){var _0x4d08dd,_0x1cc173;_0x4d08dd=_0x5ee77e[_0x7753('0xd')];var _0x2a7c0d=_0x4d08dd[_0x7753('0x12')](-0x1);if(_0x2a7c0d==='/'||_0x2a7c0d==='\x5c'||_0x2a7c0d===':'){_0x4d08dd=_0x4d08dd['substring'](0x0,_0x4d08dd['lastIndexOf'](_0x2a7c0d));}switch(_0x5ee77e['zone']){case'US':_0x1cc173=_0x7753('0x15');break;case'AU':_0x1cc173=_0x7753('0x16');break;case'IN':_0x1cc173='https://accounts.zoho.in';break;case'CN':_0x1cc173='https://accounts.zoho.com.cn';break;default:_0x1cc173=_0x7753('0x18');break;}var _0x2808f8={'method':_0x7753('0x19'),'uri':_0x1cc173+'/oauth/v2/token','form':{'grant_type':_0x7753('0x1b'),'client_id':_0x5ee77e[_0x7753('0xe')],'client_secret':_0x5ee77e[_0x7753('0xf')],'redirect_uri':_0x5ee77e['serverUrl'],'code':_0x5ee77e[_0x7753('0x10')]},'headers':{'Content-Type':_0x7753('0x1c')}};return rp(_0x2808f8)[_0x7753('0x1d')](function(_0x328765){var _0x273ece=JSON[_0x7753('0x1e')](_0x328765);if(_0x273ece[_0x7753('0x1f')]){_0x5ee77e[_0x7753('0x20')]=_0x273ece[_0x7753('0x1f')];logger[_0x7753('0x21')](util[_0x7753('0x22')](_0x7753('0x26'),_0x5ee77e[_0x7753('0x23')],_0x5ee77e['id']));}else{logger['error'](util[_0x7753('0x22')](_0x7753('0x27'),_0x5ee77e['name'],_0x5ee77e['id']),util[_0x7753('0x24')](_0x273ece,{'showHidden':![],'depth':null}));}return _0x5d5925(null,_0xa19fec);})[_0x7753('0x28')](function(_0x50a964){logger[_0x7753('0x25')](util[_0x7753('0x22')](_0x7753('0x27'),_0x5ee77e[_0x7753('0x23')],_0x5ee77e['id']),util[_0x7753('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x5d5925(_0x50a964);});}else{return _0x5d5925(null,_0xa19fec);}}}});};