c993cc421ba081410051170b13c5c726ee8b7f13
[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 _0xfd91=['request-promise','moment','bluebird','mustache','util','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','ODBC','UserProfileResource','sendStatus','stack','name','index','map','rawAttributes','fieldName','type','key','query','intersection','model','attributes','fields','length','nolimit','where','filters','filter','VIRTUAL','merge','options','SquareOdbc','includeAll','show','keys','include','find','catch','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','error','params','test','openSync','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x280e11,_0x136cd0){var _0x1211a6=function(_0x2b4413){while(--_0x2b4413){_0x280e11['push'](_0x280e11['shift']());}};_0x1211a6(++_0x136cd0);}(_0xfd91,0x9a));var _0x1fd9=function(_0x55c8cf,_0x944ebc){_0x55c8cf=_0x55c8cf-0x0;var _0x97fd90=_0xfd91[_0x55c8cf];return _0x97fd90;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1fd9('0x0'));var rimraf=require(_0x1fd9('0x1'));var zipdir=require(_0x1fd9('0x2'));var jsonpatch=require(_0x1fd9('0x3'));var rp=require(_0x1fd9('0x4'));var moment=require(_0x1fd9('0x5'));var BPromise=require(_0x1fd9('0x6'));var Mustache=require(_0x1fd9('0x7'));var util=require(_0x1fd9('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1fd9('0x9'));var fs=require('fs');var _=require(_0x1fd9('0xa'));var squel=require(_0x1fd9('0xb'));var crypto=require('crypto');var jsforce=require(_0x1fd9('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x1fd9('0xd'));var Papa=require(_0x1fd9('0xe'));var Redis=require(_0x1fd9('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x1fd9('0x10'));var as=require(_0x1fd9('0x11'));var hardwareService=require(_0x1fd9('0x12'));var logger=require('../../config/logger')(_0x1fd9('0x13'));var utils=require(_0x1fd9('0x14'));var config=require(_0x1fd9('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x377e21,_0x187dbb){_0x187dbb=_0x187dbb||0xcc;return function(_0x48cd29){if(_0x48cd29){return _0x377e21['sendStatus'](_0x187dbb);}return _0x377e21[_0x1fd9('0x16')](_0x187dbb)[_0x1fd9('0x17')]();};}function respondWithResult(_0x1939f0,_0x48f09a){_0x48f09a=_0x48f09a||0xc8;return function(_0x5145d4){if(_0x5145d4){return _0x1939f0[_0x1fd9('0x16')](_0x48f09a)[_0x1fd9('0x18')](_0x5145d4);}};}function respondWithFilteredResult(_0x4dab27,_0x48f49f){return function(_0x3d2360){if(_0x3d2360){var _0x5e6d3d=_0x3d2360[_0x1fd9('0x19')],_0x14718f=_0x48f49f[_0x1fd9('0x1a')],_0xd3b556=_0x48f49f[_0x1fd9('0x1a')]+_0x48f49f[_0x1fd9('0x1b')],_0x2f3b9b;if(_0xd3b556>=_0x5e6d3d){_0xd3b556=_0x5e6d3d;_0x2f3b9b=0xc8;}else{_0x2f3b9b=0xce;}_0x4dab27[_0x1fd9('0x16')](_0x2f3b9b);return _0x4dab27[_0x1fd9('0x1c')](_0x1fd9('0x1d'),_0x14718f+'-'+_0xd3b556+'/'+_0x5e6d3d)[_0x1fd9('0x18')](_0x3d2360);}return null;};}function patchUpdates(_0x1c5f86){return function(_0x56ab0f){try{jsonpatch[_0x1fd9('0x1e')](_0x56ab0f,_0x1c5f86,!![]);}catch(_0x2a9963){return BPromise['reject'](_0x2a9963);}return _0x56ab0f[_0x1fd9('0x1f')]();};}function saveUpdates(_0x4bbc01,_0x425674){return function(_0xa65a3e){if(_0xa65a3e){return _0xa65a3e[_0x1fd9('0x20')](_0x4bbc01)[_0x1fd9('0x21')](function(_0x3d6a3c){return _0x3d6a3c;});}return null;};}function removeEntity(_0x52137e,_0x27e04d){return function(_0x58df7c){if(_0x58df7c){return _0x58df7c[_0x1fd9('0x22')]()[_0x1fd9('0x21')](function(){var _0x4aa3a2=_0x58df7c['get']({'plain':!![]});var _0x4a30df=_0x1fd9('0x23');return db[_0x1fd9('0x24')][_0x1fd9('0x22')]({'where':{'type':_0x4a30df,'resourceId':_0x4aa3a2['id']}})[_0x1fd9('0x21')](function(){return _0x58df7c;});})[_0x1fd9('0x21')](function(){_0x52137e[_0x1fd9('0x16')](0xcc)[_0x1fd9('0x17')]();});}};}function handleEntityNotFound(_0x335587,_0x5504f2){return function(_0xb760f8){if(!_0xb760f8){_0x335587[_0x1fd9('0x25')](0x194);}return _0xb760f8;};}function handleError(_0x46ccae,_0x23fc30){_0x23fc30=_0x23fc30||0x1f4;return function(_0xd09d85){logger['error'](_0xd09d85[_0x1fd9('0x26')]);if(_0xd09d85['name']){delete _0xd09d85[_0x1fd9('0x27')];}_0x46ccae[_0x1fd9('0x16')](_0x23fc30)['send'](_0xd09d85);};}exports[_0x1fd9('0x28')]=function(_0x4a3d66,_0x238fce){var _0x6502f6={},_0x2333da={},_0x18f08e={'count':0x0,'rows':[]};var _0x497f1c=_[_0x1fd9('0x29')](db['SquareOdbc'][_0x1fd9('0x2a')],function(_0x45e907){return{'name':_0x45e907[_0x1fd9('0x2b')],'type':_0x45e907[_0x1fd9('0x2c')][_0x1fd9('0x2d')]};});_0x2333da['model']=_['map'](_0x497f1c,_0x1fd9('0x27'));_0x2333da['query']=_['keys'](_0x4a3d66[_0x1fd9('0x2e')]);_0x2333da['filters']=_[_0x1fd9('0x2f')](_0x2333da[_0x1fd9('0x30')],_0x2333da['query']);_0x6502f6[_0x1fd9('0x31')]=_[_0x1fd9('0x2f')](_0x2333da[_0x1fd9('0x30')],qs[_0x1fd9('0x32')](_0x4a3d66[_0x1fd9('0x2e')][_0x1fd9('0x32')]));_0x6502f6[_0x1fd9('0x31')]=_0x6502f6[_0x1fd9('0x31')][_0x1fd9('0x33')]?_0x6502f6[_0x1fd9('0x31')]:_0x2333da[_0x1fd9('0x30')];if(!_0x4a3d66[_0x1fd9('0x2e')]['hasOwnProperty'](_0x1fd9('0x34'))){_0x6502f6[_0x1fd9('0x1b')]=qs['limit'](_0x4a3d66[_0x1fd9('0x2e')][_0x1fd9('0x1b')]);_0x6502f6[_0x1fd9('0x1a')]=qs[_0x1fd9('0x1a')](_0x4a3d66['query'][_0x1fd9('0x1a')]);}_0x6502f6['order']=qs['sort'](_0x4a3d66[_0x1fd9('0x2e')]['sort']);_0x6502f6[_0x1fd9('0x35')]=qs[_0x1fd9('0x36')](_['pick'](_0x4a3d66[_0x1fd9('0x2e')],_0x2333da['filters']),_0x497f1c);if(_0x4a3d66[_0x1fd9('0x2e')][_0x1fd9('0x37')]){_0x6502f6[_0x1fd9('0x35')]=_['merge'](_0x6502f6['where'],{'$or':_[_0x1fd9('0x29')](_0x497f1c,function(_0x7b8206){if(_0x7b8206[_0x1fd9('0x2c')]!==_0x1fd9('0x38')){var _0x2824eb={};_0x2824eb[_0x7b8206[_0x1fd9('0x27')]]={'$like':'%'+_0x4a3d66[_0x1fd9('0x2e')][_0x1fd9('0x37')]+'%'};return _0x2824eb;}})});}_0x6502f6=_[_0x1fd9('0x39')]({},_0x6502f6,_0x4a3d66[_0x1fd9('0x3a')]);var _0x4f5ba0={'where':_0x6502f6['where']};return db[_0x1fd9('0x3b')][_0x1fd9('0x19')](_0x4f5ba0)[_0x1fd9('0x21')](function(_0x4fb7ef){_0x18f08e[_0x1fd9('0x19')]=_0x4fb7ef;if(_0x4a3d66[_0x1fd9('0x2e')][_0x1fd9('0x3c')]){_0x6502f6['include']=[{'all':!![]}];}return db[_0x1fd9('0x3b')]['findAll'](_0x6502f6);})['then'](function(_0x579ccf){_0x18f08e['rows']=_0x579ccf;return _0x18f08e;})['then'](respondWithFilteredResult(_0x238fce,_0x6502f6))['catch'](handleError(_0x238fce,null));};exports[_0x1fd9('0x3d')]=function(_0x10397d,_0x1b6625){var _0x2d46ec={'raw':!![],'where':{'id':_0x10397d['params']['id']}},_0x416249={};_0x416249[_0x1fd9('0x30')]=_[_0x1fd9('0x3e')](db[_0x1fd9('0x3b')][_0x1fd9('0x2a')]);_0x416249[_0x1fd9('0x2e')]=_[_0x1fd9('0x3e')](_0x10397d['query']);_0x416249[_0x1fd9('0x36')]=_['intersection'](_0x416249[_0x1fd9('0x30')],_0x416249[_0x1fd9('0x2e')]);_0x2d46ec[_0x1fd9('0x31')]=_[_0x1fd9('0x2f')](_0x416249[_0x1fd9('0x30')],qs[_0x1fd9('0x32')](_0x10397d[_0x1fd9('0x2e')][_0x1fd9('0x32')]));_0x2d46ec[_0x1fd9('0x31')]=_0x2d46ec[_0x1fd9('0x31')][_0x1fd9('0x33')]?_0x2d46ec['attributes']:_0x416249[_0x1fd9('0x30')];if(_0x10397d[_0x1fd9('0x2e')][_0x1fd9('0x3c')]){_0x2d46ec[_0x1fd9('0x3f')]=[{'all':!![]}];}_0x2d46ec=_[_0x1fd9('0x39')]({},_0x2d46ec,_0x10397d[_0x1fd9('0x3a')]);return db[_0x1fd9('0x3b')][_0x1fd9('0x40')](_0x2d46ec)[_0x1fd9('0x21')](handleEntityNotFound(_0x1b6625,null))[_0x1fd9('0x21')](respondWithResult(_0x1b6625,null))[_0x1fd9('0x41')](handleError(_0x1b6625,null));};exports[_0x1fd9('0x42')]=function(_0x1aa5a8,_0x1e6145){return db[_0x1fd9('0x3b')][_0x1fd9('0x42')](_0x1aa5a8[_0x1fd9('0x43')],{})['then'](function(_0x6aa07b){var _0x5c0dc8=_0x1aa5a8['user'][_0x1fd9('0x44')]({'plain':!![]});if(!_0x5c0dc8)throw new Error(_0x1fd9('0x45'));if(_0x5c0dc8[_0x1fd9('0x46')]===_0x1fd9('0x47')){var _0x342f48=_0x6aa07b[_0x1fd9('0x44')]({'plain':!![]});var _0x52060b=_0x1fd9('0x23');return db[_0x1fd9('0x48')][_0x1fd9('0x40')]({'where':{'name':_0x52060b,'userProfileId':_0x5c0dc8[_0x1fd9('0x49')]},'raw':!![]})[_0x1fd9('0x21')](function(_0xdbf2ca){if(_0xdbf2ca&&_0xdbf2ca[_0x1fd9('0x4a')]===0x0){return db['UserProfileResource'][_0x1fd9('0x42')]({'name':_0x342f48['name'],'resourceId':_0x342f48['id'],'type':_0xdbf2ca[_0x1fd9('0x27')],'sectionId':_0xdbf2ca['id']},{})['then'](function(){return _0x6aa07b;});}else{return _0x6aa07b;}})[_0x1fd9('0x41')](function(_0x5d6279){logger[_0x1fd9('0x4b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5d6279);throw _0x5d6279;});}return _0x6aa07b;})[_0x1fd9('0x21')](respondWithResult(_0x1e6145,0xc9))[_0x1fd9('0x41')](handleError(_0x1e6145,null));};exports[_0x1fd9('0x20')]=function(_0x3a7560,_0x4b52d1){if(_0x3a7560[_0x1fd9('0x43')]['id']){delete _0x3a7560['body']['id'];}return db['SquareOdbc'][_0x1fd9('0x40')]({'where':{'id':_0x3a7560[_0x1fd9('0x4c')]['id']}})[_0x1fd9('0x21')](handleEntityNotFound(_0x4b52d1,null))[_0x1fd9('0x21')](saveUpdates(_0x3a7560['body'],null))['then'](respondWithResult(_0x4b52d1,null))[_0x1fd9('0x41')](handleError(_0x4b52d1,null));};exports['destroy']=function(_0x4060b3,_0x10d9ca){return db[_0x1fd9('0x3b')][_0x1fd9('0x40')]({'where':{'id':_0x4060b3['params']['id']}})[_0x1fd9('0x21')](handleEntityNotFound(_0x10d9ca,null))[_0x1fd9('0x21')](removeEntity(_0x10d9ca,null))[_0x1fd9('0x41')](handleError(_0x10d9ca,null));};exports[_0x1fd9('0x4d')]=function(_0x595a6c,_0x9a89a,_0x320ce3){var _0x26394e;return db[_0x1fd9('0x3b')][_0x1fd9('0x40')]({'where':{'id':_0x595a6c['params']['id']},'attributes':['id','dsn']})[_0x1fd9('0x21')](handleEntityNotFound(_0x9a89a,null))['then'](function(_0x43528f){if(_0x43528f){var _0x544cdd=require('odbc')();_0x544cdd[_0x1fd9('0x4e')](_0x43528f['dsn']);_0x544cdd['closeSync']();return _0x43528f;}})[_0x1fd9('0x21')](respondWithResult(_0x9a89a,null))['catch'](handleError(_0x9a89a,null));};