Built motion from commit 25580385.|2.6.2
[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 _0xa063=['clientId','clientSecret','code','host','substring','lastIndexOf','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','authorization_code','then','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','slice','https://accounts.zoho.eu','catch','lodash','util','api','bluebird','request-promise','path','rimraf','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','zone','serverUrl','changed'];(function(_0x343b94,_0x51ee36){var _0x2b7611=function(_0xa0c8a2){while(--_0xa0c8a2){_0x343b94['push'](_0x343b94['shift']());}};_0x2b7611(++_0x51ee36);}(_0xa063,0x18b));var _0x3a06=function(_0x2dc143,_0x2a622e){_0x2dc143=_0x2dc143-0x0;var _0xbd8c38=_0xa063[_0x2dc143];return _0xbd8c38;};'use strict';var _=require(_0x3a06('0x0'));var util=require(_0x3a06('0x1'));var logger=require('../../config/logger')(_0x3a06('0x2'));var moment=require('moment');var BPromise=require(_0x3a06('0x3'));var rp=require(_0x3a06('0x4'));var fs=require('fs');var path=require(_0x3a06('0x5'));var rimraf=require(_0x3a06('0x6'));var config=require('../../config/environment');var attributes=require(_0x3a06('0x7'));var integrations=require(_0x3a06('0x8'));module[_0x3a06('0x9')]=function(_0x1c8341,_0x4667d4){return _0x1c8341[_0x3a06('0xa')](_0x3a06('0xb'),attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2b5914,_0x393017,_0x29c153){if(_0x2b5914['changed'](_0x3a06('0xc'))||_0x2b5914['changed'](_0x3a06('0xd'))||_0x2b5914[_0x3a06('0xe')](_0x3a06('0xf'))||_0x2b5914[_0x3a06('0xe')](_0x3a06('0x10'))||_0x2b5914['changed'](_0x3a06('0x11'))||_0x2b5914[_0x3a06('0xe')](_0x3a06('0x12'))){var _0x14cc67,_0x58ac48;_0x14cc67=_0x2b5914[_0x3a06('0xd')];var _0x2e8ea6=_0x14cc67['slice'](-0x1);if(_0x2e8ea6==='/'||_0x2e8ea6==='\x5c'||_0x2e8ea6===':'){_0x14cc67=_0x14cc67[_0x3a06('0x13')](0x0,_0x14cc67[_0x3a06('0x14')](_0x2e8ea6));}switch(_0x2b5914[_0x3a06('0xc')]){case'US':_0x58ac48='https://accounts.zoho.com';break;case'AU':_0x58ac48=_0x3a06('0x15');break;case'IN':_0x58ac48=_0x3a06('0x16');break;case'CN':_0x58ac48=_0x3a06('0x17');break;default:_0x58ac48='https://accounts.zoho.eu';break;}var _0x417fe0={'method':_0x3a06('0x18'),'uri':_0x58ac48+_0x3a06('0x19'),'form':{'grant_type':_0x3a06('0x1a'),'client_id':_0x2b5914[_0x3a06('0xf')],'client_secret':_0x2b5914[_0x3a06('0x10')],'redirect_uri':_0x2b5914[_0x3a06('0xd')],'code':_0x2b5914[_0x3a06('0x11')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x417fe0)[_0x3a06('0x1b')](function(_0x2eeba5){var _0x244103=JSON[_0x3a06('0x1c')](_0x2eeba5);if(_0x244103[_0x3a06('0x1d')]){_0x2b5914[_0x3a06('0x1e')]=_0x244103[_0x3a06('0x1d')];logger[_0x3a06('0x1f')](util[_0x3a06('0x20')](_0x3a06('0x21'),_0x2b5914['name'],_0x2b5914['id']));}else{logger[_0x3a06('0x22')](util['format'](_0x3a06('0x23'),_0x2b5914[_0x3a06('0x24')],_0x2b5914['id']),util[_0x3a06('0x25')](_0x244103,{'showHidden':![],'depth':null}));}return _0x29c153(null,_0x393017);})['catch'](function(_0x4e859c){logger[_0x3a06('0x22')](util['format'](_0x3a06('0x23'),_0x2b5914[_0x3a06('0x24')],_0x2b5914['id']),util[_0x3a06('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x29c153(_0x4e859c);});}else{return _0x29c153(null,_0x393017);}},'beforeUpdate':function(_0x53bc69,_0xe35d61,_0x5a7c26){if(_0x53bc69['changed'](_0x3a06('0xc'))||_0x53bc69[_0x3a06('0xe')](_0x3a06('0xd'))||_0x53bc69[_0x3a06('0xe')]('clientId')||_0x53bc69[_0x3a06('0xe')]('clientSecret')||_0x53bc69['changed'](_0x3a06('0x11'))||_0x53bc69[_0x3a06('0xe')](_0x3a06('0x12'))){var _0x35275e,_0x406072;_0x35275e=_0x53bc69[_0x3a06('0xd')];var _0xf06026=_0x35275e[_0x3a06('0x26')](-0x1);if(_0xf06026==='/'||_0xf06026==='\x5c'||_0xf06026===':'){_0x35275e=_0x35275e[_0x3a06('0x13')](0x0,_0x35275e[_0x3a06('0x14')](_0xf06026));}switch(_0x53bc69[_0x3a06('0xc')]){case'US':_0x406072='https://accounts.zoho.com';break;case'AU':_0x406072='https://accounts.zoho.com.au';break;case'IN':_0x406072=_0x3a06('0x16');break;case'CN':_0x406072='https://accounts.zoho.com.cn';break;default:_0x406072=_0x3a06('0x27');break;}var _0x4f4878={'method':'POST','uri':_0x406072+_0x3a06('0x19'),'form':{'grant_type':_0x3a06('0x1a'),'client_id':_0x53bc69[_0x3a06('0xf')],'client_secret':_0x53bc69[_0x3a06('0x10')],'redirect_uri':_0x53bc69[_0x3a06('0xd')],'code':_0x53bc69[_0x3a06('0x11')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x4f4878)[_0x3a06('0x1b')](function(_0x2e7f32){var _0xae8e01=JSON['parse'](_0x2e7f32);if(_0xae8e01['refresh_token']){_0x53bc69[_0x3a06('0x1e')]=_0xae8e01['refresh_token'];logger[_0x3a06('0x1f')](util[_0x3a06('0x20')](_0x3a06('0x21'),_0x53bc69['name'],_0x53bc69['id']));}else{logger['error'](util[_0x3a06('0x20')](_0x3a06('0x23'),_0x53bc69[_0x3a06('0x24')],_0x53bc69['id']),util[_0x3a06('0x25')](_0xae8e01,{'showHidden':![],'depth':null}));}return _0x5a7c26(null,_0xe35d61);})[_0x3a06('0x28')](function(_0x49c7fb){logger[_0x3a06('0x22')](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x53bc69['name'],_0x53bc69['id']),util[_0x3a06('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x5a7c26(_0x49c7fb);});}else{return _0x5a7c26(null,_0xe35d61);}}}});};