Built motion from commit (unavailable).|2.5.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 _0xd084=['inspect','catch','format','substring','https://accounts.zoho.com','then','info','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','clientId','clientSecret','code','host','slice','lastIndexOf','zone','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','application/x-www-form-urlencoded','parse','refresh_token','refreshToken','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name'];(function(_0xaa0309,_0x1c8008){var _0x5de7ce=function(_0x3aa6ae){while(--_0x3aa6ae){_0xaa0309['push'](_0xaa0309['shift']());}};_0x5de7ce(++_0x1c8008);}(_0xd084,0x10f));var _0x4d08=function(_0x4b8515,_0x4225a7){_0x4b8515=_0x4b8515-0x0;var _0x33f4f3=_0xd084[_0x4b8515];return _0x33f4f3;};'use strict';var _=require(_0x4d08('0x0'));var util=require('util');var logger=require(_0x4d08('0x1'))(_0x4d08('0x2'));var moment=require(_0x4d08('0x3'));var BPromise=require(_0x4d08('0x4'));var rp=require(_0x4d08('0x5'));var fs=require('fs');var path=require(_0x4d08('0x6'));var rimraf=require(_0x4d08('0x7'));var config=require(_0x4d08('0x8'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0x4d08('0x9'));module[_0x4d08('0xa')]=function(_0x109df6,_0x2bc825){return _0x109df6[_0x4d08('0xb')](_0x4d08('0xc'),attributes,{'tableName':_0x4d08('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x39ca43,_0x27b535,_0x5536bb){if(_0x39ca43['changed']('zone')||_0x39ca43[_0x4d08('0xe')](_0x4d08('0xf'))||_0x39ca43[_0x4d08('0xe')](_0x4d08('0x10'))||_0x39ca43[_0x4d08('0xe')](_0x4d08('0x11'))||_0x39ca43[_0x4d08('0xe')](_0x4d08('0x12'))||_0x39ca43[_0x4d08('0xe')](_0x4d08('0x13'))){var _0x4467b8,_0x222b32;_0x4467b8=_0x39ca43['serverUrl'];var _0x4249cb=_0x4467b8[_0x4d08('0x14')](-0x1);if(_0x4249cb==='/'||_0x4249cb==='\x5c'||_0x4249cb===':'){_0x4467b8=_0x4467b8['substring'](0x0,_0x4467b8[_0x4d08('0x15')](_0x4249cb));}switch(_0x39ca43[_0x4d08('0x16')]){case'US':_0x222b32='https://accounts.zoho.com';break;case'AU':_0x222b32=_0x4d08('0x17');break;case'IN':_0x222b32=_0x4d08('0x18');break;case'CN':_0x222b32=_0x4d08('0x19');break;default:_0x222b32=_0x4d08('0x1a');break;}var _0x5e9d00={'method':_0x4d08('0x1b'),'uri':_0x222b32+_0x4d08('0x1c'),'form':{'grant_type':_0x4d08('0x1d'),'client_id':_0x39ca43[_0x4d08('0x10')],'client_secret':_0x39ca43[_0x4d08('0x11')],'redirect_uri':_0x39ca43[_0x4d08('0xf')],'code':_0x39ca43[_0x4d08('0x12')]},'headers':{'Content-Type':_0x4d08('0x1e')}};return rp(_0x5e9d00)['then'](function(_0x498b13){var _0x464c1a=JSON[_0x4d08('0x1f')](_0x498b13);if(_0x464c1a[_0x4d08('0x20')]){_0x39ca43[_0x4d08('0x21')]=_0x464c1a['refresh_token'];logger['info'](util['format']('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x39ca43['name'],_0x39ca43['id']));}else{logger[_0x4d08('0x22')](util['format'](_0x4d08('0x23'),_0x39ca43[_0x4d08('0x24')],_0x39ca43['id']),util[_0x4d08('0x25')](_0x464c1a,{'showHidden':![],'depth':null}));}return _0x5536bb(null,_0x27b535);})[_0x4d08('0x26')](function(_0x4d48f6){logger[_0x4d08('0x22')](util[_0x4d08('0x27')](_0x4d08('0x23'),_0x39ca43[_0x4d08('0x24')],_0x39ca43['id']),util[_0x4d08('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x5536bb(_0x4d48f6);});}else{return _0x5536bb(null,_0x27b535);}},'beforeUpdate':function(_0x4c7819,_0x1fbfe5,_0x594ced){if(_0x4c7819[_0x4d08('0xe')]('zone')||_0x4c7819[_0x4d08('0xe')]('serverUrl')||_0x4c7819[_0x4d08('0xe')](_0x4d08('0x10'))||_0x4c7819[_0x4d08('0xe')](_0x4d08('0x11'))||_0x4c7819[_0x4d08('0xe')]('code')||_0x4c7819['changed'](_0x4d08('0x13'))){var _0x4d8663,_0x41b214;_0x4d8663=_0x4c7819[_0x4d08('0xf')];var _0x212ee1=_0x4d8663[_0x4d08('0x14')](-0x1);if(_0x212ee1==='/'||_0x212ee1==='\x5c'||_0x212ee1===':'){_0x4d8663=_0x4d8663[_0x4d08('0x28')](0x0,_0x4d8663[_0x4d08('0x15')](_0x212ee1));}switch(_0x4c7819[_0x4d08('0x16')]){case'US':_0x41b214=_0x4d08('0x29');break;case'AU':_0x41b214=_0x4d08('0x17');break;case'IN':_0x41b214=_0x4d08('0x18');break;case'CN':_0x41b214=_0x4d08('0x19');break;default:_0x41b214=_0x4d08('0x1a');break;}var _0x534f21={'method':_0x4d08('0x1b'),'uri':_0x41b214+_0x4d08('0x1c'),'form':{'grant_type':'authorization_code','client_id':_0x4c7819[_0x4d08('0x10')],'client_secret':_0x4c7819[_0x4d08('0x11')],'redirect_uri':_0x4c7819[_0x4d08('0xf')],'code':_0x4c7819['code']},'headers':{'Content-Type':_0x4d08('0x1e')}};return rp(_0x534f21)[_0x4d08('0x2a')](function(_0x25b9f5){var _0x359525=JSON[_0x4d08('0x1f')](_0x25b9f5);if(_0x359525[_0x4d08('0x20')]){_0x4c7819['refreshToken']=_0x359525[_0x4d08('0x20')];logger[_0x4d08('0x2b')](util[_0x4d08('0x27')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4c7819[_0x4d08('0x24')],_0x4c7819['id']));}else{logger[_0x4d08('0x22')](util[_0x4d08('0x27')](_0x4d08('0x23'),_0x4c7819['name'],_0x4c7819['id']),util['inspect'](_0x359525,{'showHidden':![],'depth':null}));}return _0x594ced(null,_0x1fbfe5);})[_0x4d08('0x26')](function(_0x4b08c3){logger[_0x4d08('0x22')](util[_0x4d08('0x27')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x4c7819['name'],_0x4c7819['id']),util[_0x4d08('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x594ced(_0x4b08c3);});}else{return _0x594ced(null,_0x1fbfe5);}}}});};