ced5e05a450b8a35e12cb22aa14013fead48ca67
[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 _0xd399=['../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','clientId','clientSecret','code','slice','substring','lastIndexOf','zone','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','authorization_code','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','host','info','catch','lodash','util'];(function(_0x316371,_0x3c225f){var _0x576f72=function(_0x109308){while(--_0x109308){_0x316371['push'](_0x316371['shift']());}};_0x576f72(++_0x3c225f);}(_0xd399,0x181));var _0x9d39=function(_0x18bed5,_0x157997){_0x18bed5=_0x18bed5-0x0;var _0x5c0ed6=_0xd399[_0x18bed5];return _0x5c0ed6;};'use strict';var _=require(_0x9d39('0x0'));var util=require(_0x9d39('0x1'));var logger=require(_0x9d39('0x2'))(_0x9d39('0x3'));var moment=require('moment');var BPromise=require(_0x9d39('0x4'));var rp=require(_0x9d39('0x5'));var fs=require('fs');var path=require(_0x9d39('0x6'));var rimraf=require(_0x9d39('0x7'));var config=require(_0x9d39('0x8'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0x9d39('0x9'));module[_0x9d39('0xa')]=function(_0x361a16,_0x5f1453){return _0x361a16[_0x9d39('0xb')](_0x9d39('0xc'),attributes,{'tableName':_0x9d39('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2d2950,_0x325f11,_0x61154d){if(_0x2d2950[_0x9d39('0xe')]('zone')||_0x2d2950['changed'](_0x9d39('0xf'))||_0x2d2950[_0x9d39('0xe')](_0x9d39('0x10'))||_0x2d2950[_0x9d39('0xe')](_0x9d39('0x11'))||_0x2d2950[_0x9d39('0xe')](_0x9d39('0x12'))||_0x2d2950['changed']('host')){var _0x2d92e0,_0x191d32;_0x2d92e0=_0x2d2950[_0x9d39('0xf')];var _0x2df44c=_0x2d92e0[_0x9d39('0x13')](-0x1);if(_0x2df44c==='/'||_0x2df44c==='\x5c'||_0x2df44c===':'){_0x2d92e0=_0x2d92e0[_0x9d39('0x14')](0x0,_0x2d92e0[_0x9d39('0x15')](_0x2df44c));}switch(_0x2d2950[_0x9d39('0x16')]){case'US':_0x191d32='https://accounts.zoho.com';break;case'AU':_0x191d32=_0x9d39('0x17');break;case'IN':_0x191d32=_0x9d39('0x18');break;case'CN':_0x191d32=_0x9d39('0x19');break;default:_0x191d32=_0x9d39('0x1a');break;}var _0x95819c={'method':'POST','uri':_0x191d32+_0x9d39('0x1b'),'form':{'grant_type':_0x9d39('0x1c'),'client_id':_0x2d2950[_0x9d39('0x10')],'client_secret':_0x2d2950['clientSecret'],'redirect_uri':_0x2d2950['serverUrl'],'code':_0x2d2950[_0x9d39('0x12')]},'headers':{'Content-Type':_0x9d39('0x1d')}};return rp(_0x95819c)[_0x9d39('0x1e')](function(_0x55e459){var _0x43993d=JSON[_0x9d39('0x1f')](_0x55e459);if(_0x43993d[_0x9d39('0x20')]){_0x2d2950[_0x9d39('0x21')]=_0x43993d['refresh_token'];logger['info'](util[_0x9d39('0x22')](_0x9d39('0x23'),_0x2d2950[_0x9d39('0x24')],_0x2d2950['id']));}else{logger[_0x9d39('0x25')](util[_0x9d39('0x22')](_0x9d39('0x26'),_0x2d2950[_0x9d39('0x24')],_0x2d2950['id']),util['inspect'](_0x43993d,{'showHidden':![],'depth':null}));}return _0x61154d(null,_0x325f11);})['catch'](function(_0x5c9f8f){logger[_0x9d39('0x25')](util[_0x9d39('0x22')](_0x9d39('0x26'),_0x2d2950[_0x9d39('0x24')],_0x2d2950['id']),util[_0x9d39('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x61154d(_0x5c9f8f);});}else{return _0x61154d(null,_0x325f11);}},'beforeUpdate':function(_0x5a9200,_0x61a1b6,_0x406060){if(_0x5a9200[_0x9d39('0xe')](_0x9d39('0x16'))||_0x5a9200['changed'](_0x9d39('0xf'))||_0x5a9200[_0x9d39('0xe')](_0x9d39('0x10'))||_0x5a9200[_0x9d39('0xe')](_0x9d39('0x11'))||_0x5a9200[_0x9d39('0xe')](_0x9d39('0x12'))||_0x5a9200['changed'](_0x9d39('0x28'))){var _0x2a1adc,_0x3c4408;_0x2a1adc=_0x5a9200[_0x9d39('0xf')];var _0x1830fd=_0x2a1adc[_0x9d39('0x13')](-0x1);if(_0x1830fd==='/'||_0x1830fd==='\x5c'||_0x1830fd===':'){_0x2a1adc=_0x2a1adc[_0x9d39('0x14')](0x0,_0x2a1adc[_0x9d39('0x15')](_0x1830fd));}switch(_0x5a9200['zone']){case'US':_0x3c4408='https://accounts.zoho.com';break;case'AU':_0x3c4408=_0x9d39('0x17');break;case'IN':_0x3c4408='https://accounts.zoho.in';break;case'CN':_0x3c4408='https://accounts.zoho.com.cn';break;default:_0x3c4408='https://accounts.zoho.eu';break;}var _0x42c5be={'method':'POST','uri':_0x3c4408+'/oauth/v2/token','form':{'grant_type':_0x9d39('0x1c'),'client_id':_0x5a9200[_0x9d39('0x10')],'client_secret':_0x5a9200[_0x9d39('0x11')],'redirect_uri':_0x5a9200[_0x9d39('0xf')],'code':_0x5a9200[_0x9d39('0x12')]},'headers':{'Content-Type':_0x9d39('0x1d')}};return rp(_0x42c5be)[_0x9d39('0x1e')](function(_0x32a2c0){var _0x49b286=JSON[_0x9d39('0x1f')](_0x32a2c0);if(_0x49b286[_0x9d39('0x20')]){_0x5a9200[_0x9d39('0x21')]=_0x49b286['refresh_token'];logger[_0x9d39('0x29')](util[_0x9d39('0x22')](_0x9d39('0x23'),_0x5a9200[_0x9d39('0x24')],_0x5a9200['id']));}else{logger[_0x9d39('0x25')](util[_0x9d39('0x22')](_0x9d39('0x26'),_0x5a9200[_0x9d39('0x24')],_0x5a9200['id']),util[_0x9d39('0x27')](_0x49b286,{'showHidden':![],'depth':null}));}return _0x406060(null,_0x61a1b6);})[_0x9d39('0x2a')](function(_0x56a809){logger[_0x9d39('0x25')](util[_0x9d39('0x22')](_0x9d39('0x26'),_0x5a9200[_0x9d39('0x24')],_0x5a9200['id']),util[_0x9d39('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x406060(_0x56a809);});}else{return _0x406060(null,_0x61a1b6);}}}});};