0012de7d5d570f7e7ffb695ab29ddfe10b99020e
[motion2.git] / server / api / squareOdbc / squareOdbc.controller.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 _0x103b=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','count','limit','set','Content-Range','apply','save','update','then','get','ODBC','UserProfileResource','destroy','stack','name','index','SquareOdbc','fieldName','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','include','findAll','catch','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','dsn','odbc','openSync','closeSync','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x103b,0x1e1));var _0xb103=function(_0xc994c0,_0x17f70f){_0xc994c0=_0xc994c0-0x0;var _0x3a0f72=_0x103b[_0xc994c0];return _0x3a0f72;};'use strict';var emlformat=require(_0xb103('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb103('0x1'));var jsonpatch=require(_0xb103('0x2'));var rp=require(_0xb103('0x3'));var moment=require('moment');var BPromise=require(_0xb103('0x4'));var Mustache=require(_0xb103('0x5'));var util=require(_0xb103('0x6'));var path=require(_0xb103('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb103('0x8'));var fs=require('fs');var fs_extra=require(_0xb103('0x9'));var _=require(_0xb103('0xa'));var squel=require('squel');var crypto=require(_0xb103('0xb'));var jsforce=require(_0xb103('0xc'));var deskjs=require(_0xb103('0xd'));var toCsv=require(_0xb103('0xe'));var querystring=require(_0xb103('0xf'));var Papa=require(_0xb103('0x10'));var Redis=require(_0xb103('0x11'));var authService=require(_0xb103('0x12'));var qs=require(_0xb103('0x13'));var as=require(_0xb103('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xb103('0x15'));var config=require(_0xb103('0x16'));var licenseUtil=require(_0xb103('0x17'));var db=require(_0xb103('0x18'))['db'];function respondWithStatusCode(_0x14cdd1,_0x3b72bd){_0x3b72bd=_0x3b72bd||0xcc;return function(_0x415ca2){if(_0x415ca2){return _0x14cdd1[_0xb103('0x19')](_0x3b72bd);}return _0x14cdd1[_0xb103('0x1a')](_0x3b72bd)[_0xb103('0x1b')]();};}function respondWithResult(_0x41b10e,_0x348000){_0x348000=_0x348000||0xc8;return function(_0x3cb896){if(_0x3cb896){return _0x41b10e[_0xb103('0x1a')](_0x348000)[_0xb103('0x1c')](_0x3cb896);}};}function respondWithFilteredResult(_0x489cc8,_0x35a69d){return function(_0x17fc15){if(_0x17fc15){var _0x525019=typeof _0x35a69d[_0xb103('0x1d')]==='undefined'&&typeof _0x35a69d['limit']==='undefined';var _0x373e61=_0x17fc15[_0xb103('0x1e')];var _0x1f1f7c=_0x525019?0x0:_0x35a69d[_0xb103('0x1d')];var _0x12ca81=_0x525019?_0x17fc15[_0xb103('0x1e')]:_0x35a69d[_0xb103('0x1d')]+_0x35a69d[_0xb103('0x1f')];var _0x1cdbc2;if(_0x12ca81>=_0x373e61){_0x12ca81=_0x373e61;_0x1cdbc2=0xc8;}else{_0x1cdbc2=0xce;}_0x489cc8[_0xb103('0x1a')](_0x1cdbc2);return _0x489cc8[_0xb103('0x20')](_0xb103('0x21'),_0x1f1f7c+'-'+_0x12ca81+'/'+_0x373e61)[_0xb103('0x1c')](_0x17fc15);}return null;};}function patchUpdates(_0x3a4b22){return function(_0x1381cc){try{jsonpatch[_0xb103('0x22')](_0x1381cc,_0x3a4b22,!![]);}catch(_0x39fc10){return BPromise['reject'](_0x39fc10);}return _0x1381cc[_0xb103('0x23')]();};}function saveUpdates(_0x161047,_0x532b0b){return function(_0x15f652){if(_0x15f652){return _0x15f652[_0xb103('0x24')](_0x161047)['then'](function(_0x33c9ae){return _0x33c9ae;});}return null;};}function removeEntity(_0x1781df,_0x3600ed){return function(_0x29aba6){if(_0x29aba6){return _0x29aba6['destroy']()[_0xb103('0x25')](function(){var _0x3633cc=_0x29aba6[_0xb103('0x26')]({'plain':!![]});var _0xa55dbf=_0xb103('0x27');return db[_0xb103('0x28')][_0xb103('0x29')]({'where':{'type':_0xa55dbf,'resourceId':_0x3633cc['id']}})[_0xb103('0x25')](function(){return _0x29aba6;});})[_0xb103('0x25')](function(){_0x1781df[_0xb103('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3bbaa6,_0x50a08c){return function(_0x2c95a2){if(!_0x2c95a2){_0x3bbaa6[_0xb103('0x19')](0x194);}return _0x2c95a2;};}function handleError(_0xa66748,_0x166bf6){_0x166bf6=_0x166bf6||0x1f4;return function(_0x182dec){logger['error'](_0x182dec[_0xb103('0x2a')]);if(_0x182dec[_0xb103('0x2b')]){delete _0x182dec[_0xb103('0x2b')];}_0xa66748[_0xb103('0x1a')](_0x166bf6)['send'](_0x182dec);};}exports[_0xb103('0x2c')]=function(_0x4a1056,_0x128b58){var _0x440095={},_0x4e3ff4={},_0x1967aa={'count':0x0,'rows':[]};var _0x4d1638=_['map'](db[_0xb103('0x2d')]['rawAttributes'],function(_0x11c494){return{'name':_0x11c494[_0xb103('0x2e')],'type':_0x11c494[_0xb103('0x2f')]['key']};});_0x4e3ff4[_0xb103('0x30')]=_[_0xb103('0x31')](_0x4d1638,_0xb103('0x2b'));_0x4e3ff4[_0xb103('0x32')]=_[_0xb103('0x33')](_0x4a1056[_0xb103('0x32')]);_0x4e3ff4['filters']=_[_0xb103('0x34')](_0x4e3ff4[_0xb103('0x30')],_0x4e3ff4['query']);_0x440095[_0xb103('0x35')]=_[_0xb103('0x34')](_0x4e3ff4[_0xb103('0x30')],qs[_0xb103('0x36')](_0x4a1056[_0xb103('0x32')][_0xb103('0x36')]));_0x440095[_0xb103('0x35')]=_0x440095['attributes'][_0xb103('0x37')]?_0x440095[_0xb103('0x35')]:_0x4e3ff4[_0xb103('0x30')];if(!_0x4a1056[_0xb103('0x32')][_0xb103('0x38')]('nolimit')){_0x440095['limit']=qs['limit'](_0x4a1056['query']['limit']);_0x440095['offset']=qs[_0xb103('0x1d')](_0x4a1056[_0xb103('0x32')][_0xb103('0x1d')]);}_0x440095[_0xb103('0x39')]=qs[_0xb103('0x3a')](_0x4a1056['query'][_0xb103('0x3a')]);_0x440095[_0xb103('0x3b')]=qs[_0xb103('0x3c')](_[_0xb103('0x3d')](_0x4a1056[_0xb103('0x32')],_0x4e3ff4[_0xb103('0x3c')]),_0x4d1638);if(_0x4a1056[_0xb103('0x32')]['filter']){_0x440095[_0xb103('0x3b')]=_['merge'](_0x440095[_0xb103('0x3b')],{'$or':_[_0xb103('0x31')](_0x4d1638,function(_0x2dd88d){if(_0x2dd88d[_0xb103('0x2f')]!=='VIRTUAL'){var _0x207898={};_0x207898[_0x2dd88d[_0xb103('0x2b')]]={'$like':'%'+_0x4a1056[_0xb103('0x32')][_0xb103('0x3e')]+'%'};return _0x207898;}})});}_0x440095=_['merge']({},_0x440095,_0x4a1056['options']);var _0xfe26a={'where':_0x440095[_0xb103('0x3b')]};return db[_0xb103('0x2d')][_0xb103('0x1e')](_0xfe26a)['then'](function(_0x1d1dfa){_0x1967aa['count']=_0x1d1dfa;if(_0x4a1056['query']['includeAll']){_0x440095[_0xb103('0x3f')]=[{'all':!![]}];}return db['SquareOdbc'][_0xb103('0x40')](_0x440095);})['then'](function(_0x3cfc62){_0x1967aa['rows']=_0x3cfc62;return _0x1967aa;})[_0xb103('0x25')](respondWithFilteredResult(_0x128b58,_0x440095))[_0xb103('0x41')](handleError(_0x128b58,null));};exports['show']=function(_0x335e29,_0x1a956a){var _0xa6158d={'raw':!![],'where':{'id':_0x335e29[_0xb103('0x42')]['id']}},_0x56655e={};_0x56655e[_0xb103('0x30')]=_[_0xb103('0x33')](db['SquareOdbc']['rawAttributes']);_0x56655e[_0xb103('0x32')]=_['keys'](_0x335e29[_0xb103('0x32')]);_0x56655e[_0xb103('0x3c')]=_[_0xb103('0x34')](_0x56655e['model'],_0x56655e[_0xb103('0x32')]);_0xa6158d[_0xb103('0x35')]=_['intersection'](_0x56655e[_0xb103('0x30')],qs[_0xb103('0x36')](_0x335e29[_0xb103('0x32')][_0xb103('0x36')]));_0xa6158d[_0xb103('0x35')]=_0xa6158d[_0xb103('0x35')]['length']?_0xa6158d[_0xb103('0x35')]:_0x56655e[_0xb103('0x30')];if(_0x335e29['query'][_0xb103('0x43')]){_0xa6158d[_0xb103('0x3f')]=[{'all':!![]}];}_0xa6158d=_['merge']({},_0xa6158d,_0x335e29['options']);return db[_0xb103('0x2d')][_0xb103('0x44')](_0xa6158d)[_0xb103('0x25')](handleEntityNotFound(_0x1a956a,null))[_0xb103('0x25')](respondWithResult(_0x1a956a,null))[_0xb103('0x41')](handleError(_0x1a956a,null));};exports[_0xb103('0x45')]=function(_0x4a0460,_0x1ae691){return db[_0xb103('0x2d')][_0xb103('0x45')](_0x4a0460[_0xb103('0x46')],{})[_0xb103('0x25')](function(_0x471ce1){var _0x589139=_0x4a0460[_0xb103('0x47')]['get']({'plain':!![]});if(!_0x589139)throw new Error(_0xb103('0x48'));if(_0x589139[_0xb103('0x49')]===_0xb103('0x47')){var _0x318f68=_0x471ce1['get']({'plain':!![]});var _0x30c9fc='ODBC';return db[_0xb103('0x4a')][_0xb103('0x44')]({'where':{'name':_0x30c9fc,'userProfileId':_0x589139[_0xb103('0x4b')]},'raw':!![]})['then'](function(_0x36e7cc){if(_0x36e7cc&&_0x36e7cc[_0xb103('0x4c')]===0x0){return db[_0xb103('0x28')][_0xb103('0x45')]({'name':_0x318f68[_0xb103('0x2b')],'resourceId':_0x318f68['id'],'type':_0x36e7cc[_0xb103('0x2b')],'sectionId':_0x36e7cc['id']},{})['then'](function(){return _0x471ce1;});}else{return _0x471ce1;}})['catch'](function(_0x5cb295){logger[_0xb103('0x4d')](_0xb103('0x4e'),_0x5cb295);throw _0x5cb295;});}return _0x471ce1;})[_0xb103('0x25')](respondWithResult(_0x1ae691,0xc9))[_0xb103('0x41')](handleError(_0x1ae691,null));};exports[_0xb103('0x24')]=function(_0xea8aa6,_0xbc067c){if(_0xea8aa6[_0xb103('0x46')]['id']){delete _0xea8aa6[_0xb103('0x46')]['id'];}return db[_0xb103('0x2d')]['find']({'where':{'id':_0xea8aa6['params']['id']}})[_0xb103('0x25')](handleEntityNotFound(_0xbc067c,null))['then'](saveUpdates(_0xea8aa6[_0xb103('0x46')],null))[_0xb103('0x25')](respondWithResult(_0xbc067c,null))[_0xb103('0x41')](handleError(_0xbc067c,null));};exports['destroy']=function(_0x5a6b88,_0x18f19c){return db[_0xb103('0x2d')][_0xb103('0x44')]({'where':{'id':_0x5a6b88[_0xb103('0x42')]['id']}})[_0xb103('0x25')](handleEntityNotFound(_0x18f19c,null))[_0xb103('0x25')](removeEntity(_0x18f19c,null))['catch'](handleError(_0x18f19c,null));};exports['test']=function(_0x5abe11,_0x9158e8,_0x2e74ea){var _0x5c20e2;return db[_0xb103('0x2d')][_0xb103('0x44')]({'where':{'id':_0x5abe11[_0xb103('0x42')]['id']},'attributes':['id',_0xb103('0x4f')]})[_0xb103('0x25')](handleEntityNotFound(_0x9158e8,null))[_0xb103('0x25')](function(_0x7e68ea){if(_0x7e68ea){var _0x960324=require(_0xb103('0x50'))();_0x960324[_0xb103('0x51')](_0x7e68ea[_0xb103('0x4f')]);_0x960324[_0xb103('0x52')]();return _0x7e68ea;}})[_0xb103('0x25')](respondWithResult(_0x9158e8,null))[_0xb103('0x41')](handleError(_0x9158e8,null));};