Built motion from commit (unavailable).|2.4.18
[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 _0x7128=['../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','save','then','get','ODBC','UserProfileResource','destroy','error','name','send','index','SquareOdbc','rawAttributes','type','key','map','query','keys','filters','intersection','model','attributes','fields','nolimit','order','sort','where','merge','VIRTUAL','filter','options','include','rows','catch','show','params','length','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','test','dsn','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0xe87d7b,_0x361ac8){var _0x1324ad=function(_0x155224){while(--_0x155224){_0xe87d7b['push'](_0xe87d7b['shift']());}};_0x1324ad(++_0x361ac8);}(_0x7128,0x1c0));var _0x8712=function(_0x305c31,_0x466b17){_0x305c31=_0x305c31-0x0;var _0x17f39f=_0x7128[_0x305c31];return _0x17f39f;};'use strict';var pdf=require(_0x8712('0x0'));var emlformat=require(_0x8712('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x8712('0x2'));var jsonpatch=require(_0x8712('0x3'));var rp=require(_0x8712('0x4'));var moment=require(_0x8712('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8712('0x6'));var util=require(_0x8712('0x7'));var path=require(_0x8712('0x8'));var sox=require(_0x8712('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x8712('0xa'));var squel=require('squel');var crypto=require(_0x8712('0xb'));var jsforce=require(_0x8712('0xc'));var deskjs=require(_0x8712('0xd'));var toCsv=require(_0x8712('0xe'));var querystring=require(_0x8712('0xf'));var Papa=require(_0x8712('0x10'));var Redis=require('ioredis');var authService=require(_0x8712('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x8712('0x12'));var hardwareService=require(_0x8712('0x13'));var logger=require(_0x8712('0x14'))('api');var utils=require(_0x8712('0x15'));var config=require(_0x8712('0x16'));var db=require(_0x8712('0x17'))['db'];function respondWithStatusCode(_0x5bc2bc,_0x5729fd){_0x5729fd=_0x5729fd||0xcc;return function(_0x4437d9){if(_0x4437d9){return _0x5bc2bc[_0x8712('0x18')](_0x5729fd);}return _0x5bc2bc[_0x8712('0x19')](_0x5729fd)[_0x8712('0x1a')]();};}function respondWithResult(_0x44f9fa,_0x121543){_0x121543=_0x121543||0xc8;return function(_0x12f9c5){if(_0x12f9c5){return _0x44f9fa[_0x8712('0x19')](_0x121543)['json'](_0x12f9c5);}};}function respondWithFilteredResult(_0x1e8054,_0x27dab9){return function(_0x294ff0){if(_0x294ff0){var _0x5d137f=_0x294ff0[_0x8712('0x1b')],_0x2b59e3=_0x27dab9[_0x8712('0x1c')],_0x3e24d7=_0x27dab9[_0x8712('0x1c')]+_0x27dab9[_0x8712('0x1d')],_0x35450b;if(_0x3e24d7>=_0x5d137f){_0x3e24d7=_0x5d137f;_0x35450b=0xc8;}else{_0x35450b=0xce;}_0x1e8054[_0x8712('0x19')](_0x35450b);return _0x1e8054[_0x8712('0x1e')](_0x8712('0x1f'),_0x2b59e3+'-'+_0x3e24d7+'/'+_0x5d137f)[_0x8712('0x20')](_0x294ff0);}return null;};}function patchUpdates(_0x476ff2){return function(_0x57f3b0){try{jsonpatch['apply'](_0x57f3b0,_0x476ff2,!![]);}catch(_0x4fe0c1){return BPromise['reject'](_0x4fe0c1);}return _0x57f3b0[_0x8712('0x21')]();};}function saveUpdates(_0x3434de,_0x6bd950){return function(_0x4934f6){if(_0x4934f6){return _0x4934f6['update'](_0x3434de)['then'](function(_0x34d3e1){return _0x34d3e1;});}return null;};}function removeEntity(_0x123a5f,_0x5c94ca){return function(_0x4cab69){if(_0x4cab69){return _0x4cab69['destroy']()[_0x8712('0x22')](function(){var _0xe2353e=_0x4cab69[_0x8712('0x23')]({'plain':!![]});var _0x2aa510=_0x8712('0x24');return db[_0x8712('0x25')][_0x8712('0x26')]({'where':{'type':_0x2aa510,'resourceId':_0xe2353e['id']}})[_0x8712('0x22')](function(){return _0x4cab69;});})[_0x8712('0x22')](function(){_0x123a5f['status'](0xcc)[_0x8712('0x1a')]();});}};}function handleEntityNotFound(_0x312fb0,_0x4e239f){return function(_0x2ef181){if(!_0x2ef181){_0x312fb0[_0x8712('0x18')](0x194);}return _0x2ef181;};}function handleError(_0x5030b5,_0x4070d1){_0x4070d1=_0x4070d1||0x1f4;return function(_0x1a3b8e){logger[_0x8712('0x27')](_0x1a3b8e['stack']);if(_0x1a3b8e[_0x8712('0x28')]){delete _0x1a3b8e[_0x8712('0x28')];}_0x5030b5[_0x8712('0x19')](_0x4070d1)[_0x8712('0x29')](_0x1a3b8e);};}exports[_0x8712('0x2a')]=function(_0x133137,_0xdfaf1){var _0x2172cc={},_0x5dad1c={},_0x1f2961={'count':0x0,'rows':[]};var _0x592960=_['map'](db[_0x8712('0x2b')][_0x8712('0x2c')],function(_0x1ca09a){return{'name':_0x1ca09a['fieldName'],'type':_0x1ca09a[_0x8712('0x2d')][_0x8712('0x2e')]};});_0x5dad1c['model']=_[_0x8712('0x2f')](_0x592960,'name');_0x5dad1c[_0x8712('0x30')]=_[_0x8712('0x31')](_0x133137[_0x8712('0x30')]);_0x5dad1c[_0x8712('0x32')]=_[_0x8712('0x33')](_0x5dad1c[_0x8712('0x34')],_0x5dad1c['query']);_0x2172cc[_0x8712('0x35')]=_['intersection'](_0x5dad1c[_0x8712('0x34')],qs[_0x8712('0x36')](_0x133137[_0x8712('0x30')][_0x8712('0x36')]));_0x2172cc[_0x8712('0x35')]=_0x2172cc[_0x8712('0x35')]['length']?_0x2172cc[_0x8712('0x35')]:_0x5dad1c[_0x8712('0x34')];if(!_0x133137[_0x8712('0x30')]['hasOwnProperty'](_0x8712('0x37'))){_0x2172cc[_0x8712('0x1d')]=qs[_0x8712('0x1d')](_0x133137['query'][_0x8712('0x1d')]);_0x2172cc[_0x8712('0x1c')]=qs[_0x8712('0x1c')](_0x133137[_0x8712('0x30')][_0x8712('0x1c')]);}_0x2172cc[_0x8712('0x38')]=qs['sort'](_0x133137['query'][_0x8712('0x39')]);_0x2172cc[_0x8712('0x3a')]=qs[_0x8712('0x32')](_['pick'](_0x133137[_0x8712('0x30')],_0x5dad1c[_0x8712('0x32')]));if(_0x133137['query']['filter']){_0x2172cc['where']=_[_0x8712('0x3b')](_0x2172cc[_0x8712('0x3a')],{'$or':_['map'](_0x592960,function(_0x1f731a){if(_0x1f731a[_0x8712('0x2d')]!==_0x8712('0x3c')){var _0x2c5740={};_0x2c5740[_0x1f731a[_0x8712('0x28')]]={'$like':'%'+_0x133137[_0x8712('0x30')][_0x8712('0x3d')]+'%'};return _0x2c5740;}})});}_0x2172cc=_[_0x8712('0x3b')]({},_0x2172cc,_0x133137[_0x8712('0x3e')]);var _0x285def={'where':_0x2172cc[_0x8712('0x3a')]};return db[_0x8712('0x2b')][_0x8712('0x1b')](_0x285def)[_0x8712('0x22')](function(_0x545659){_0x1f2961[_0x8712('0x1b')]=_0x545659;if(_0x133137['query']['includeAll']){_0x2172cc[_0x8712('0x3f')]=[{'all':!![]}];}return db[_0x8712('0x2b')]['findAll'](_0x2172cc);})[_0x8712('0x22')](function(_0x49b44b){_0x1f2961[_0x8712('0x40')]=_0x49b44b;return _0x1f2961;})[_0x8712('0x22')](respondWithFilteredResult(_0xdfaf1,_0x2172cc))[_0x8712('0x41')](handleError(_0xdfaf1,null));};exports[_0x8712('0x42')]=function(_0x56db50,_0x14ea06){var _0x3ddc47={'raw':!![],'where':{'id':_0x56db50[_0x8712('0x43')]['id']}},_0x13214f={};_0x13214f[_0x8712('0x34')]=_[_0x8712('0x31')](db[_0x8712('0x2b')][_0x8712('0x2c')]);_0x13214f[_0x8712('0x30')]=_[_0x8712('0x31')](_0x56db50[_0x8712('0x30')]);_0x13214f[_0x8712('0x32')]=_[_0x8712('0x33')](_0x13214f['model'],_0x13214f[_0x8712('0x30')]);_0x3ddc47[_0x8712('0x35')]=_['intersection'](_0x13214f[_0x8712('0x34')],qs[_0x8712('0x36')](_0x56db50['query'][_0x8712('0x36')]));_0x3ddc47[_0x8712('0x35')]=_0x3ddc47[_0x8712('0x35')][_0x8712('0x44')]?_0x3ddc47[_0x8712('0x35')]:_0x13214f['model'];if(_0x56db50[_0x8712('0x30')][_0x8712('0x45')]){_0x3ddc47[_0x8712('0x3f')]=[{'all':!![]}];}_0x3ddc47=_['merge']({},_0x3ddc47,_0x56db50[_0x8712('0x3e')]);return db[_0x8712('0x2b')][_0x8712('0x46')](_0x3ddc47)['then'](handleEntityNotFound(_0x14ea06,null))[_0x8712('0x22')](respondWithResult(_0x14ea06,null))[_0x8712('0x41')](handleError(_0x14ea06,null));};exports[_0x8712('0x47')]=function(_0x568e2c,_0x34b832){return db[_0x8712('0x2b')][_0x8712('0x47')](_0x568e2c[_0x8712('0x48')],{})[_0x8712('0x22')](function(_0x5a5ee9){var _0x20d515=_0x568e2c[_0x8712('0x49')][_0x8712('0x23')]({'plain':!![]});if(!_0x20d515)throw new Error(_0x8712('0x4a'));if(_0x20d515['role']===_0x8712('0x49')){var _0x368173=_0x5a5ee9[_0x8712('0x23')]({'plain':!![]});var _0x520961='ODBC';return db[_0x8712('0x4b')][_0x8712('0x46')]({'where':{'name':_0x520961,'userProfileId':_0x20d515['userProfileId']},'raw':!![]})[_0x8712('0x22')](function(_0x4007a7){if(_0x4007a7&&_0x4007a7['autoAssociation']===0x0){return db[_0x8712('0x25')][_0x8712('0x47')]({'name':_0x368173[_0x8712('0x28')],'resourceId':_0x368173['id'],'type':_0x4007a7[_0x8712('0x28')],'sectionId':_0x4007a7['id']},{})[_0x8712('0x22')](function(){return _0x5a5ee9;});}else{return _0x5a5ee9;}})[_0x8712('0x41')](function(_0x55f8ca){logger[_0x8712('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x55f8ca);throw _0x55f8ca;});}return _0x5a5ee9;})[_0x8712('0x22')](respondWithResult(_0x34b832,0xc9))['catch'](handleError(_0x34b832,null));};exports['update']=function(_0x335225,_0x194494){if(_0x335225['body']['id']){delete _0x335225[_0x8712('0x48')]['id'];}return db['SquareOdbc'][_0x8712('0x46')]({'where':{'id':_0x335225['params']['id']}})[_0x8712('0x22')](handleEntityNotFound(_0x194494,null))[_0x8712('0x22')](saveUpdates(_0x335225[_0x8712('0x48')],null))[_0x8712('0x22')](respondWithResult(_0x194494,null))['catch'](handleError(_0x194494,null));};exports[_0x8712('0x26')]=function(_0xcd0698,_0x5d4670){return db[_0x8712('0x2b')][_0x8712('0x46')]({'where':{'id':_0xcd0698[_0x8712('0x43')]['id']}})['then'](handleEntityNotFound(_0x5d4670,null))[_0x8712('0x22')](removeEntity(_0x5d4670,null))[_0x8712('0x41')](handleError(_0x5d4670,null));};exports[_0x8712('0x4c')]=function(_0x537a57,_0x3bcd2f,_0x3d89de){var _0x361617;return db[_0x8712('0x2b')][_0x8712('0x46')]({'where':{'id':_0x537a57[_0x8712('0x43')]['id']},'attributes':['id',_0x8712('0x4d')]})['then'](handleEntityNotFound(_0x3bcd2f,null))[_0x8712('0x22')](function(_0x14785b){if(_0x14785b){var _0x27db13=require('odbc')();_0x27db13['openSync'](_0x14785b[_0x8712('0x4d')]);_0x27db13['closeSync']();return _0x14785b;}})[_0x8712('0x22')](respondWithResult(_0x3bcd2f,null))[_0x8712('0x41')](handleError(_0x3bcd2f,null));};