Built motion from commit fa4c4286.|2.6.29
[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 _0x8519=['Content-Range','json','reject','save','update','then','destroy','ODBC','UserProfileResource','sendStatus','error','stack','name','send','index','map','SquareOdbc','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','order','sort','where','merge','filter','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','options','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','openSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','undefined','count','limit','set'];(function(_0x1a3558,_0x2c763c){var _0xb1498e=function(_0x28fc5b){while(--_0x28fc5b){_0x1a3558['push'](_0x1a3558['shift']());}};_0xb1498e(++_0x2c763c);}(_0x8519,0xd8));var _0x9851=function(_0x2d26cd,_0x4a44e1){_0x2d26cd=_0x2d26cd-0x0;var _0x2a03f3=_0x8519[_0x2d26cd];return _0x2a03f3;};'use strict';var emlformat=require(_0x9851('0x0'));var rimraf=require(_0x9851('0x1'));var zipdir=require(_0x9851('0x2'));var jsonpatch=require(_0x9851('0x3'));var rp=require(_0x9851('0x4'));var moment=require(_0x9851('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x9851('0x6'));var util=require('util');var path=require('path');var sox=require(_0x9851('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9851('0x8'));var _=require(_0x9851('0x9'));var squel=require(_0x9851('0xa'));var crypto=require(_0x9851('0xb'));var jsforce=require(_0x9851('0xc'));var deskjs=require(_0x9851('0xd'));var toCsv=require(_0x9851('0xe'));var querystring=require(_0x9851('0xf'));var Papa=require('papaparse');var Redis=require(_0x9851('0x10'));var authService=require(_0x9851('0x11'));var qs=require(_0x9851('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9851('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x9851('0x14'));var config=require(_0x9851('0x15'));var licenseUtil=require(_0x9851('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x17f073,_0x5dc210){_0x5dc210=_0x5dc210||0xcc;return function(_0x2496e7){if(_0x2496e7){return _0x17f073['sendStatus'](_0x5dc210);}return _0x17f073[_0x9851('0x17')](_0x5dc210)[_0x9851('0x18')]();};}function respondWithResult(_0x1a8355,_0x3a4aea){_0x3a4aea=_0x3a4aea||0xc8;return function(_0x3771ea){if(_0x3771ea){return _0x1a8355[_0x9851('0x17')](_0x3a4aea)['json'](_0x3771ea);}};}function respondWithFilteredResult(_0x336548,_0x5b7a5a){return function(_0x15a149){if(_0x15a149){var _0x2a9907=typeof _0x5b7a5a[_0x9851('0x19')]===_0x9851('0x1a')&&typeof _0x5b7a5a['limit']===_0x9851('0x1a');var _0x4c82a1=_0x15a149[_0x9851('0x1b')];var _0x2aa565=_0x2a9907?0x0:_0x5b7a5a[_0x9851('0x19')];var _0x1b41b5=_0x2a9907?_0x15a149[_0x9851('0x1b')]:_0x5b7a5a[_0x9851('0x19')]+_0x5b7a5a[_0x9851('0x1c')];var _0x5f226a;if(_0x1b41b5>=_0x4c82a1){_0x1b41b5=_0x4c82a1;_0x5f226a=0xc8;}else{_0x5f226a=0xce;}_0x336548[_0x9851('0x17')](_0x5f226a);return _0x336548[_0x9851('0x1d')](_0x9851('0x1e'),_0x2aa565+'-'+_0x1b41b5+'/'+_0x4c82a1)[_0x9851('0x1f')](_0x15a149);}return null;};}function patchUpdates(_0x1cdfe8){return function(_0x41ec44){try{jsonpatch['apply'](_0x41ec44,_0x1cdfe8,!![]);}catch(_0x4f11af){return BPromise[_0x9851('0x20')](_0x4f11af);}return _0x41ec44[_0x9851('0x21')]();};}function saveUpdates(_0x14a0c5,_0x3d5890){return function(_0x1be245){if(_0x1be245){return _0x1be245[_0x9851('0x22')](_0x14a0c5)[_0x9851('0x23')](function(_0x35884c){return _0x35884c;});}return null;};}function removeEntity(_0x4d0511,_0x591495){return function(_0x3c951b){if(_0x3c951b){return _0x3c951b[_0x9851('0x24')]()[_0x9851('0x23')](function(){var _0x5092c7=_0x3c951b['get']({'plain':!![]});var _0x835b67=_0x9851('0x25');return db[_0x9851('0x26')][_0x9851('0x24')]({'where':{'type':_0x835b67,'resourceId':_0x5092c7['id']}})[_0x9851('0x23')](function(){return _0x3c951b;});})['then'](function(){_0x4d0511[_0x9851('0x17')](0xcc)[_0x9851('0x18')]();});}};}function handleEntityNotFound(_0x19b48a,_0x23a7ab){return function(_0x49582b){if(!_0x49582b){_0x19b48a[_0x9851('0x27')](0x194);}return _0x49582b;};}function handleError(_0x292e2a,_0x3409f6){_0x3409f6=_0x3409f6||0x1f4;return function(_0x4d2952){logger[_0x9851('0x28')](_0x4d2952[_0x9851('0x29')]);if(_0x4d2952['name']){delete _0x4d2952[_0x9851('0x2a')];}_0x292e2a[_0x9851('0x17')](_0x3409f6)[_0x9851('0x2b')](_0x4d2952);};}exports[_0x9851('0x2c')]=function(_0xe12d58,_0x53c147){var _0x7e170c={},_0x1774f7={},_0x1e08b7={'count':0x0,'rows':[]};var _0x128aa5=_[_0x9851('0x2d')](db[_0x9851('0x2e')]['rawAttributes'],function(_0x2392e6){return{'name':_0x2392e6[_0x9851('0x2f')],'type':_0x2392e6[_0x9851('0x30')][_0x9851('0x31')]};});_0x1774f7[_0x9851('0x32')]=_[_0x9851('0x2d')](_0x128aa5,'name');_0x1774f7['query']=_['keys'](_0xe12d58[_0x9851('0x33')]);_0x1774f7[_0x9851('0x34')]=_['intersection'](_0x1774f7[_0x9851('0x32')],_0x1774f7[_0x9851('0x33')]);_0x7e170c[_0x9851('0x35')]=_[_0x9851('0x36')](_0x1774f7[_0x9851('0x32')],qs[_0x9851('0x37')](_0xe12d58['query'][_0x9851('0x37')]));_0x7e170c[_0x9851('0x35')]=_0x7e170c['attributes'][_0x9851('0x38')]?_0x7e170c[_0x9851('0x35')]:_0x1774f7['model'];if(!_0xe12d58[_0x9851('0x33')]['hasOwnProperty']('nolimit')){_0x7e170c['limit']=qs[_0x9851('0x1c')](_0xe12d58[_0x9851('0x33')]['limit']);_0x7e170c[_0x9851('0x19')]=qs[_0x9851('0x19')](_0xe12d58[_0x9851('0x33')]['offset']);}_0x7e170c[_0x9851('0x39')]=qs[_0x9851('0x3a')](_0xe12d58[_0x9851('0x33')][_0x9851('0x3a')]);_0x7e170c[_0x9851('0x3b')]=qs['filters'](_['pick'](_0xe12d58[_0x9851('0x33')],_0x1774f7[_0x9851('0x34')]),_0x128aa5);if(_0xe12d58[_0x9851('0x33')]['filter']){_0x7e170c[_0x9851('0x3b')]=_[_0x9851('0x3c')](_0x7e170c[_0x9851('0x3b')],{'$or':_[_0x9851('0x2d')](_0x128aa5,function(_0x5b2df2){if(_0x5b2df2[_0x9851('0x30')]!=='VIRTUAL'){var _0xafdd72={};_0xafdd72[_0x5b2df2['name']]={'$like':'%'+_0xe12d58[_0x9851('0x33')][_0x9851('0x3d')]+'%'};return _0xafdd72;}})});}_0x7e170c=_[_0x9851('0x3c')]({},_0x7e170c,_0xe12d58['options']);var _0x1d5a3c={'where':_0x7e170c[_0x9851('0x3b')]};return db[_0x9851('0x2e')]['count'](_0x1d5a3c)[_0x9851('0x23')](function(_0x36e96e){_0x1e08b7[_0x9851('0x1b')]=_0x36e96e;if(_0xe12d58[_0x9851('0x33')][_0x9851('0x3e')]){_0x7e170c[_0x9851('0x3f')]=[{'all':!![]}];}return db[_0x9851('0x2e')][_0x9851('0x40')](_0x7e170c);})[_0x9851('0x23')](function(_0x44a838){_0x1e08b7[_0x9851('0x41')]=_0x44a838;return _0x1e08b7;})[_0x9851('0x23')](respondWithFilteredResult(_0x53c147,_0x7e170c))[_0x9851('0x42')](handleError(_0x53c147,null));};exports[_0x9851('0x43')]=function(_0x30853b,_0x4300d0){var _0x43e1a4={'raw':!![],'where':{'id':_0x30853b[_0x9851('0x44')]['id']}},_0x56472f={};_0x56472f[_0x9851('0x32')]=_[_0x9851('0x45')](db[_0x9851('0x2e')][_0x9851('0x46')]);_0x56472f[_0x9851('0x33')]=_[_0x9851('0x45')](_0x30853b[_0x9851('0x33')]);_0x56472f[_0x9851('0x34')]=_[_0x9851('0x36')](_0x56472f[_0x9851('0x32')],_0x56472f[_0x9851('0x33')]);_0x43e1a4[_0x9851('0x35')]=_[_0x9851('0x36')](_0x56472f['model'],qs['fields'](_0x30853b['query']['fields']));_0x43e1a4['attributes']=_0x43e1a4[_0x9851('0x35')]['length']?_0x43e1a4[_0x9851('0x35')]:_0x56472f[_0x9851('0x32')];if(_0x30853b['query'][_0x9851('0x3e')]){_0x43e1a4[_0x9851('0x3f')]=[{'all':!![]}];}_0x43e1a4=_[_0x9851('0x3c')]({},_0x43e1a4,_0x30853b[_0x9851('0x47')]);return db[_0x9851('0x2e')][_0x9851('0x48')](_0x43e1a4)['then'](handleEntityNotFound(_0x4300d0,null))[_0x9851('0x23')](respondWithResult(_0x4300d0,null))[_0x9851('0x42')](handleError(_0x4300d0,null));};exports[_0x9851('0x49')]=function(_0x5759a4,_0x281a26){return db['SquareOdbc'][_0x9851('0x49')](_0x5759a4[_0x9851('0x4a')],{})[_0x9851('0x23')](function(_0x216f47){var _0xdc4bc5=_0x5759a4['user'][_0x9851('0x4b')]({'plain':!![]});if(!_0xdc4bc5)throw new Error(_0x9851('0x4c'));if(_0xdc4bc5[_0x9851('0x4d')]===_0x9851('0x4e')){var _0x408e2f=_0x216f47[_0x9851('0x4b')]({'plain':!![]});var _0x51d778='ODBC';return db['UserProfileSection']['find']({'where':{'name':_0x51d778,'userProfileId':_0xdc4bc5[_0x9851('0x4f')]},'raw':!![]})[_0x9851('0x23')](function(_0x3bd887){if(_0x3bd887&&_0x3bd887['autoAssociation']===0x0){return db[_0x9851('0x26')][_0x9851('0x49')]({'name':_0x408e2f[_0x9851('0x2a')],'resourceId':_0x408e2f['id'],'type':_0x3bd887[_0x9851('0x2a')],'sectionId':_0x3bd887['id']},{})[_0x9851('0x23')](function(){return _0x216f47;});}else{return _0x216f47;}})[_0x9851('0x42')](function(_0x3f2e4f){logger[_0x9851('0x28')](_0x9851('0x50'),_0x3f2e4f);throw _0x3f2e4f;});}return _0x216f47;})[_0x9851('0x23')](respondWithResult(_0x281a26,0xc9))[_0x9851('0x42')](handleError(_0x281a26,null));};exports[_0x9851('0x22')]=function(_0x3fabf5,_0x2a8204){if(_0x3fabf5[_0x9851('0x4a')]['id']){delete _0x3fabf5[_0x9851('0x4a')]['id'];}return db['SquareOdbc'][_0x9851('0x48')]({'where':{'id':_0x3fabf5[_0x9851('0x44')]['id']}})['then'](handleEntityNotFound(_0x2a8204,null))[_0x9851('0x23')](saveUpdates(_0x3fabf5[_0x9851('0x4a')],null))[_0x9851('0x23')](respondWithResult(_0x2a8204,null))[_0x9851('0x42')](handleError(_0x2a8204,null));};exports[_0x9851('0x24')]=function(_0x3f55c6,_0xa3ad49){return db[_0x9851('0x2e')][_0x9851('0x48')]({'where':{'id':_0x3f55c6[_0x9851('0x44')]['id']}})[_0x9851('0x23')](handleEntityNotFound(_0xa3ad49,null))[_0x9851('0x23')](removeEntity(_0xa3ad49,null))[_0x9851('0x42')](handleError(_0xa3ad49,null));};exports['test']=function(_0x4b194c,_0x33e1d1,_0x315088){var _0x112f5d;return db['SquareOdbc']['find']({'where':{'id':_0x4b194c[_0x9851('0x44')]['id']},'attributes':['id','dsn']})['then'](handleEntityNotFound(_0x33e1d1,null))['then'](function(_0x33a80b){if(_0x33a80b){var _0x4d5f10=require('odbc')();_0x4d5f10[_0x9851('0x51')](_0x33a80b['dsn']);_0x4d5f10['closeSync']();return _0x33a80b;}})['then'](respondWithResult(_0x33e1d1,null))[_0x9851('0x42')](handleError(_0x33e1d1,null));};