Built motion from commit 25580385.|2.6.2
[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 _0x6a95=['../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','offset','undefined','limit','count','status','Content-Range','json','reject','save','update','then','destroy','get','ODBC','UserProfileResource','error','name','send','index','map','SquareOdbc','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','length','nolimit','sort','pick','filter','where','VIRTUAL','merge','options','findAll','rows','catch','show','params','include','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','test','odbc','openSync','dsn','closeSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x13617a,_0x1de3e3){var _0x506c6b=function(_0x2e479f){while(--_0x2e479f){_0x13617a['push'](_0x13617a['shift']());}};_0x506c6b(++_0x1de3e3);}(_0x6a95,0x146));var _0x56a9=function(_0x18a79d,_0x57bd2c){_0x18a79d=_0x18a79d-0x0;var _0x4f8848=_0x6a95[_0x18a79d];return _0x4f8848;};'use strict';var emlformat=require(_0x56a9('0x0'));var rimraf=require(_0x56a9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x56a9('0x2'));var rp=require(_0x56a9('0x3'));var moment=require(_0x56a9('0x4'));var BPromise=require(_0x56a9('0x5'));var Mustache=require('mustache');var util=require(_0x56a9('0x6'));var path=require(_0x56a9('0x7'));var sox=require(_0x56a9('0x8'));var csv=require(_0x56a9('0x9'));var ejs=require(_0x56a9('0xa'));var fs=require('fs');var fs_extra=require(_0x56a9('0xb'));var _=require('lodash');var squel=require(_0x56a9('0xc'));var crypto=require(_0x56a9('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x56a9('0xe'));var toCsv=require(_0x56a9('0x9'));var querystring=require(_0x56a9('0xf'));var Papa=require(_0x56a9('0x10'));var Redis=require(_0x56a9('0x11'));var authService=require(_0x56a9('0x12'));var qs=require(_0x56a9('0x13'));var as=require(_0x56a9('0x14'));var hardwareService=require(_0x56a9('0x15'));var logger=require(_0x56a9('0x16'))('api');var utils=require(_0x56a9('0x17'));var config=require(_0x56a9('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x56a9('0x19'))['db'];function respondWithStatusCode(_0x57dd7c,_0x1e7f1e){_0x1e7f1e=_0x1e7f1e||0xcc;return function(_0x314c2e){if(_0x314c2e){return _0x57dd7c[_0x56a9('0x1a')](_0x1e7f1e);}return _0x57dd7c['status'](_0x1e7f1e)['end']();};}function respondWithResult(_0x7fe343,_0x3751a6){_0x3751a6=_0x3751a6||0xc8;return function(_0x304559){if(_0x304559){return _0x7fe343['status'](_0x3751a6)['json'](_0x304559);}};}function respondWithFilteredResult(_0x581760,_0x1ea26a){return function(_0x1fadf0){if(_0x1fadf0){var _0x3bb99c=typeof _0x1ea26a[_0x56a9('0x1b')]===_0x56a9('0x1c')&&typeof _0x1ea26a[_0x56a9('0x1d')]===_0x56a9('0x1c');var _0x2e2cd0=_0x1fadf0[_0x56a9('0x1e')];var _0x580673=_0x3bb99c?0x0:_0x1ea26a[_0x56a9('0x1b')];var _0x1fe8d6=_0x3bb99c?_0x1fadf0[_0x56a9('0x1e')]:_0x1ea26a[_0x56a9('0x1b')]+_0x1ea26a['limit'];var _0x5ee38f;if(_0x1fe8d6>=_0x2e2cd0){_0x1fe8d6=_0x2e2cd0;_0x5ee38f=0xc8;}else{_0x5ee38f=0xce;}_0x581760[_0x56a9('0x1f')](_0x5ee38f);return _0x581760['set'](_0x56a9('0x20'),_0x580673+'-'+_0x1fe8d6+'/'+_0x2e2cd0)[_0x56a9('0x21')](_0x1fadf0);}return null;};}function patchUpdates(_0x3955b7){return function(_0x437eca){try{jsonpatch['apply'](_0x437eca,_0x3955b7,!![]);}catch(_0x40b133){return BPromise[_0x56a9('0x22')](_0x40b133);}return _0x437eca[_0x56a9('0x23')]();};}function saveUpdates(_0x4e3304,_0x4ee482){return function(_0x55f3bf){if(_0x55f3bf){return _0x55f3bf[_0x56a9('0x24')](_0x4e3304)[_0x56a9('0x25')](function(_0x2cebb5){return _0x2cebb5;});}return null;};}function removeEntity(_0x21533b,_0x157300){return function(_0x24ffda){if(_0x24ffda){return _0x24ffda[_0x56a9('0x26')]()['then'](function(){var _0x2a0ce2=_0x24ffda[_0x56a9('0x27')]({'plain':!![]});var _0x43f526=_0x56a9('0x28');return db[_0x56a9('0x29')][_0x56a9('0x26')]({'where':{'type':_0x43f526,'resourceId':_0x2a0ce2['id']}})[_0x56a9('0x25')](function(){return _0x24ffda;});})['then'](function(){_0x21533b[_0x56a9('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2237c3,_0x17c33b){return function(_0x9565a1){if(!_0x9565a1){_0x2237c3[_0x56a9('0x1a')](0x194);}return _0x9565a1;};}function handleError(_0x1a861c,_0x118092){_0x118092=_0x118092||0x1f4;return function(_0x5b950b){logger[_0x56a9('0x2a')](_0x5b950b['stack']);if(_0x5b950b[_0x56a9('0x2b')]){delete _0x5b950b[_0x56a9('0x2b')];}_0x1a861c['status'](_0x118092)[_0x56a9('0x2c')](_0x5b950b);};}exports[_0x56a9('0x2d')]=function(_0x2e5fcf,_0x1764bb){var _0x4665ad={},_0x263f6f={},_0x47d6a1={'count':0x0,'rows':[]};var _0x20e3fa=_[_0x56a9('0x2e')](db[_0x56a9('0x2f')][_0x56a9('0x30')],function(_0x57c6ea){return{'name':_0x57c6ea[_0x56a9('0x31')],'type':_0x57c6ea[_0x56a9('0x32')]['key']};});_0x263f6f[_0x56a9('0x33')]=_['map'](_0x20e3fa,_0x56a9('0x2b'));_0x263f6f[_0x56a9('0x34')]=_[_0x56a9('0x35')](_0x2e5fcf['query']);_0x263f6f[_0x56a9('0x36')]=_['intersection'](_0x263f6f['model'],_0x263f6f['query']);_0x4665ad[_0x56a9('0x37')]=_[_0x56a9('0x38')](_0x263f6f[_0x56a9('0x33')],qs[_0x56a9('0x39')](_0x2e5fcf[_0x56a9('0x34')][_0x56a9('0x39')]));_0x4665ad[_0x56a9('0x37')]=_0x4665ad[_0x56a9('0x37')][_0x56a9('0x3a')]?_0x4665ad[_0x56a9('0x37')]:_0x263f6f[_0x56a9('0x33')];if(!_0x2e5fcf[_0x56a9('0x34')]['hasOwnProperty'](_0x56a9('0x3b'))){_0x4665ad[_0x56a9('0x1d')]=qs[_0x56a9('0x1d')](_0x2e5fcf[_0x56a9('0x34')][_0x56a9('0x1d')]);_0x4665ad[_0x56a9('0x1b')]=qs[_0x56a9('0x1b')](_0x2e5fcf['query']['offset']);}_0x4665ad['order']=qs[_0x56a9('0x3c')](_0x2e5fcf[_0x56a9('0x34')][_0x56a9('0x3c')]);_0x4665ad['where']=qs['filters'](_[_0x56a9('0x3d')](_0x2e5fcf[_0x56a9('0x34')],_0x263f6f[_0x56a9('0x36')]),_0x20e3fa);if(_0x2e5fcf[_0x56a9('0x34')][_0x56a9('0x3e')]){_0x4665ad[_0x56a9('0x3f')]=_['merge'](_0x4665ad[_0x56a9('0x3f')],{'$or':_[_0x56a9('0x2e')](_0x20e3fa,function(_0x2e3273){if(_0x2e3273[_0x56a9('0x32')]!==_0x56a9('0x40')){var _0x2265a5={};_0x2265a5[_0x2e3273[_0x56a9('0x2b')]]={'$like':'%'+_0x2e5fcf['query'][_0x56a9('0x3e')]+'%'};return _0x2265a5;}})});}_0x4665ad=_[_0x56a9('0x41')]({},_0x4665ad,_0x2e5fcf[_0x56a9('0x42')]);var _0x2806ba={'where':_0x4665ad[_0x56a9('0x3f')]};return db['SquareOdbc'][_0x56a9('0x1e')](_0x2806ba)[_0x56a9('0x25')](function(_0x46de91){_0x47d6a1[_0x56a9('0x1e')]=_0x46de91;if(_0x2e5fcf[_0x56a9('0x34')]['includeAll']){_0x4665ad['include']=[{'all':!![]}];}return db[_0x56a9('0x2f')][_0x56a9('0x43')](_0x4665ad);})[_0x56a9('0x25')](function(_0x1dfb00){_0x47d6a1[_0x56a9('0x44')]=_0x1dfb00;return _0x47d6a1;})[_0x56a9('0x25')](respondWithFilteredResult(_0x1764bb,_0x4665ad))[_0x56a9('0x45')](handleError(_0x1764bb,null));};exports[_0x56a9('0x46')]=function(_0x4ef23a,_0x4f2a13){var _0x580d07={'raw':!![],'where':{'id':_0x4ef23a[_0x56a9('0x47')]['id']}},_0x18d4a3={};_0x18d4a3['model']=_[_0x56a9('0x35')](db[_0x56a9('0x2f')][_0x56a9('0x30')]);_0x18d4a3[_0x56a9('0x34')]=_[_0x56a9('0x35')](_0x4ef23a[_0x56a9('0x34')]);_0x18d4a3[_0x56a9('0x36')]=_[_0x56a9('0x38')](_0x18d4a3[_0x56a9('0x33')],_0x18d4a3['query']);_0x580d07['attributes']=_['intersection'](_0x18d4a3[_0x56a9('0x33')],qs[_0x56a9('0x39')](_0x4ef23a[_0x56a9('0x34')]['fields']));_0x580d07[_0x56a9('0x37')]=_0x580d07[_0x56a9('0x37')]['length']?_0x580d07['attributes']:_0x18d4a3[_0x56a9('0x33')];if(_0x4ef23a[_0x56a9('0x34')]['includeAll']){_0x580d07[_0x56a9('0x48')]=[{'all':!![]}];}_0x580d07=_[_0x56a9('0x41')]({},_0x580d07,_0x4ef23a[_0x56a9('0x42')]);return db[_0x56a9('0x2f')][_0x56a9('0x49')](_0x580d07)[_0x56a9('0x25')](handleEntityNotFound(_0x4f2a13,null))[_0x56a9('0x25')](respondWithResult(_0x4f2a13,null))[_0x56a9('0x45')](handleError(_0x4f2a13,null));};exports[_0x56a9('0x4a')]=function(_0x54295c,_0x3eb5f9){return db[_0x56a9('0x2f')]['create'](_0x54295c['body'],{})[_0x56a9('0x25')](function(_0x19d56d){var _0x375782=_0x54295c[_0x56a9('0x4b')][_0x56a9('0x27')]({'plain':!![]});if(!_0x375782)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x375782[_0x56a9('0x4c')]===_0x56a9('0x4b')){var _0x537e3f=_0x19d56d['get']({'plain':!![]});var _0x2f8008=_0x56a9('0x28');return db[_0x56a9('0x4d')]['find']({'where':{'name':_0x2f8008,'userProfileId':_0x375782[_0x56a9('0x4e')]},'raw':!![]})[_0x56a9('0x25')](function(_0xdae0d3){if(_0xdae0d3&&_0xdae0d3[_0x56a9('0x4f')]===0x0){return db['UserProfileResource'][_0x56a9('0x4a')]({'name':_0x537e3f['name'],'resourceId':_0x537e3f['id'],'type':_0xdae0d3[_0x56a9('0x2b')],'sectionId':_0xdae0d3['id']},{})[_0x56a9('0x25')](function(){return _0x19d56d;});}else{return _0x19d56d;}})[_0x56a9('0x45')](function(_0x2409eb){logger['error'](_0x56a9('0x50'),_0x2409eb);throw _0x2409eb;});}return _0x19d56d;})['then'](respondWithResult(_0x3eb5f9,0xc9))['catch'](handleError(_0x3eb5f9,null));};exports[_0x56a9('0x24')]=function(_0x313dd0,_0x38e790){if(_0x313dd0[_0x56a9('0x51')]['id']){delete _0x313dd0[_0x56a9('0x51')]['id'];}return db['SquareOdbc'][_0x56a9('0x49')]({'where':{'id':_0x313dd0[_0x56a9('0x47')]['id']}})[_0x56a9('0x25')](handleEntityNotFound(_0x38e790,null))[_0x56a9('0x25')](saveUpdates(_0x313dd0[_0x56a9('0x51')],null))[_0x56a9('0x25')](respondWithResult(_0x38e790,null))[_0x56a9('0x45')](handleError(_0x38e790,null));};exports[_0x56a9('0x26')]=function(_0x7e80d2,_0x53ba2a){return db['SquareOdbc'][_0x56a9('0x49')]({'where':{'id':_0x7e80d2[_0x56a9('0x47')]['id']}})[_0x56a9('0x25')](handleEntityNotFound(_0x53ba2a,null))[_0x56a9('0x25')](removeEntity(_0x53ba2a,null))['catch'](handleError(_0x53ba2a,null));};exports[_0x56a9('0x52')]=function(_0x4558a0,_0x40910d,_0x57a5d1){var _0x2c06a6;return db[_0x56a9('0x2f')][_0x56a9('0x49')]({'where':{'id':_0x4558a0[_0x56a9('0x47')]['id']},'attributes':['id','dsn']})['then'](handleEntityNotFound(_0x40910d,null))[_0x56a9('0x25')](function(_0x4302a8){if(_0x4302a8){var _0x24fb70=require(_0x56a9('0x53'))();_0x24fb70[_0x56a9('0x54')](_0x4302a8[_0x56a9('0x55')]);_0x24fb70[_0x56a9('0x56')]();return _0x4302a8;}})[_0x56a9('0x25')](respondWithResult(_0x40910d,null))['catch'](handleError(_0x40910d,null));};