Built motion from commit f25620e4.|2.6.30
[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 _0x65c8=['end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','ODBC','UserProfileResource','sendStatus','error','name','index','map','SquareOdbc','rawAttributes','fieldName','type','model','keys','query','fields','attributes','length','hasOwnProperty','nolimit','sort','filters','pick','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','intersection','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','test','dsn','odbc','openSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','status'];(function(_0x1a43ec,_0x4a9482){var _0x15b555=function(_0x1915a9){while(--_0x1915a9){_0x1a43ec['push'](_0x1a43ec['shift']());}};_0x15b555(++_0x4a9482);}(_0x65c8,0x93));var _0x865c=function(_0x54a8af,_0x17d6bb){_0x54a8af=_0x54a8af-0x0;var _0x1c6284=_0x65c8[_0x54a8af];return _0x1c6284;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x865c('0x0'));var zipdir=require(_0x865c('0x1'));var jsonpatch=require(_0x865c('0x2'));var rp=require(_0x865c('0x3'));var moment=require(_0x865c('0x4'));var BPromise=require(_0x865c('0x5'));var Mustache=require(_0x865c('0x6'));var util=require(_0x865c('0x7'));var path=require(_0x865c('0x8'));var sox=require(_0x865c('0x9'));var csv=require(_0x865c('0xa'));var ejs=require(_0x865c('0xb'));var fs=require('fs');var fs_extra=require(_0x865c('0xc'));var _=require(_0x865c('0xd'));var squel=require(_0x865c('0xe'));var crypto=require(_0x865c('0xf'));var jsforce=require(_0x865c('0x10'));var deskjs=require(_0x865c('0x11'));var toCsv=require(_0x865c('0xa'));var querystring=require(_0x865c('0x12'));var Papa=require('papaparse');var Redis=require(_0x865c('0x13'));var authService=require(_0x865c('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x865c('0x15'));var hardwareService=require(_0x865c('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x865c('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x865c('0x18'));var db=require(_0x865c('0x19'))['db'];function respondWithStatusCode(_0x4b9418,_0x3c0408){_0x3c0408=_0x3c0408||0xcc;return function(_0x1cf36b){if(_0x1cf36b){return _0x4b9418['sendStatus'](_0x3c0408);}return _0x4b9418[_0x865c('0x1a')](_0x3c0408)[_0x865c('0x1b')]();};}function respondWithResult(_0x366682,_0x5966b5){_0x5966b5=_0x5966b5||0xc8;return function(_0x594c86){if(_0x594c86){return _0x366682[_0x865c('0x1a')](_0x5966b5)[_0x865c('0x1c')](_0x594c86);}};}function respondWithFilteredResult(_0x186bf2,_0x1e9c45){return function(_0x2dcd37){if(_0x2dcd37){var _0xc2b593=typeof _0x1e9c45[_0x865c('0x1d')]===_0x865c('0x1e')&&typeof _0x1e9c45[_0x865c('0x1f')]==='undefined';var _0x18d0e8=_0x2dcd37[_0x865c('0x20')];var _0x4a4527=_0xc2b593?0x0:_0x1e9c45[_0x865c('0x1d')];var _0x5360d5=_0xc2b593?_0x2dcd37[_0x865c('0x20')]:_0x1e9c45[_0x865c('0x1d')]+_0x1e9c45['limit'];var _0x4ab666;if(_0x5360d5>=_0x18d0e8){_0x5360d5=_0x18d0e8;_0x4ab666=0xc8;}else{_0x4ab666=0xce;}_0x186bf2[_0x865c('0x1a')](_0x4ab666);return _0x186bf2['set'](_0x865c('0x21'),_0x4a4527+'-'+_0x5360d5+'/'+_0x18d0e8)['json'](_0x2dcd37);}return null;};}function patchUpdates(_0x4a39d3){return function(_0x17f070){try{jsonpatch[_0x865c('0x22')](_0x17f070,_0x4a39d3,!![]);}catch(_0x2c49be){return BPromise[_0x865c('0x23')](_0x2c49be);}return _0x17f070[_0x865c('0x24')]();};}function saveUpdates(_0x27d25a,_0x26e65a){return function(_0x123d1e){if(_0x123d1e){return _0x123d1e[_0x865c('0x25')](_0x27d25a)[_0x865c('0x26')](function(_0x25be09){return _0x25be09;});}return null;};}function removeEntity(_0xcfbd6c,_0x287a46){return function(_0x296b15){if(_0x296b15){return _0x296b15[_0x865c('0x27')]()['then'](function(){var _0x4e572f=_0x296b15['get']({'plain':!![]});var _0x2d5cc0=_0x865c('0x28');return db[_0x865c('0x29')][_0x865c('0x27')]({'where':{'type':_0x2d5cc0,'resourceId':_0x4e572f['id']}})[_0x865c('0x26')](function(){return _0x296b15;});})[_0x865c('0x26')](function(){_0xcfbd6c[_0x865c('0x1a')](0xcc)[_0x865c('0x1b')]();});}};}function handleEntityNotFound(_0xe806f9,_0x72823b){return function(_0x11c532){if(!_0x11c532){_0xe806f9[_0x865c('0x2a')](0x194);}return _0x11c532;};}function handleError(_0x3b2e93,_0x117169){_0x117169=_0x117169||0x1f4;return function(_0x1b1d91){logger[_0x865c('0x2b')](_0x1b1d91['stack']);if(_0x1b1d91[_0x865c('0x2c')]){delete _0x1b1d91[_0x865c('0x2c')];}_0x3b2e93[_0x865c('0x1a')](_0x117169)['send'](_0x1b1d91);};}exports[_0x865c('0x2d')]=function(_0x390ddd,_0x1fc5b8){var _0x16aca5={},_0x103334={},_0x4b1fb9={'count':0x0,'rows':[]};var _0x531b8c=_[_0x865c('0x2e')](db[_0x865c('0x2f')][_0x865c('0x30')],function(_0x100d03){return{'name':_0x100d03[_0x865c('0x31')],'type':_0x100d03[_0x865c('0x32')]['key']};});_0x103334[_0x865c('0x33')]=_['map'](_0x531b8c,'name');_0x103334['query']=_[_0x865c('0x34')](_0x390ddd[_0x865c('0x35')]);_0x103334['filters']=_['intersection'](_0x103334[_0x865c('0x33')],_0x103334[_0x865c('0x35')]);_0x16aca5['attributes']=_['intersection'](_0x103334[_0x865c('0x33')],qs[_0x865c('0x36')](_0x390ddd[_0x865c('0x35')][_0x865c('0x36')]));_0x16aca5['attributes']=_0x16aca5[_0x865c('0x37')][_0x865c('0x38')]?_0x16aca5[_0x865c('0x37')]:_0x103334['model'];if(!_0x390ddd['query'][_0x865c('0x39')](_0x865c('0x3a'))){_0x16aca5[_0x865c('0x1f')]=qs['limit'](_0x390ddd[_0x865c('0x35')][_0x865c('0x1f')]);_0x16aca5[_0x865c('0x1d')]=qs[_0x865c('0x1d')](_0x390ddd[_0x865c('0x35')]['offset']);}_0x16aca5['order']=qs[_0x865c('0x3b')](_0x390ddd[_0x865c('0x35')][_0x865c('0x3b')]);_0x16aca5['where']=qs[_0x865c('0x3c')](_[_0x865c('0x3d')](_0x390ddd['query'],_0x103334['filters']),_0x531b8c);if(_0x390ddd[_0x865c('0x35')][_0x865c('0x3e')]){_0x16aca5[_0x865c('0x3f')]=_['merge'](_0x16aca5[_0x865c('0x3f')],{'$or':_[_0x865c('0x2e')](_0x531b8c,function(_0x2d4c03){if(_0x2d4c03['type']!==_0x865c('0x40')){var _0x5be3dd={};_0x5be3dd[_0x2d4c03['name']]={'$like':'%'+_0x390ddd[_0x865c('0x35')][_0x865c('0x3e')]+'%'};return _0x5be3dd;}})});}_0x16aca5=_[_0x865c('0x41')]({},_0x16aca5,_0x390ddd[_0x865c('0x42')]);var _0x50d405={'where':_0x16aca5[_0x865c('0x3f')]};return db[_0x865c('0x2f')][_0x865c('0x20')](_0x50d405)[_0x865c('0x26')](function(_0x34bcae){_0x4b1fb9[_0x865c('0x20')]=_0x34bcae;if(_0x390ddd[_0x865c('0x35')][_0x865c('0x43')]){_0x16aca5[_0x865c('0x44')]=[{'all':!![]}];}return db[_0x865c('0x2f')][_0x865c('0x45')](_0x16aca5);})[_0x865c('0x26')](function(_0x280bc){_0x4b1fb9[_0x865c('0x46')]=_0x280bc;return _0x4b1fb9;})[_0x865c('0x26')](respondWithFilteredResult(_0x1fc5b8,_0x16aca5))[_0x865c('0x47')](handleError(_0x1fc5b8,null));};exports[_0x865c('0x48')]=function(_0x1c9ef9,_0x2a8860){var _0x46cbd6={'raw':!![],'where':{'id':_0x1c9ef9['params']['id']}},_0x5c3a85={};_0x5c3a85[_0x865c('0x33')]=_[_0x865c('0x34')](db[_0x865c('0x2f')][_0x865c('0x30')]);_0x5c3a85[_0x865c('0x35')]=_[_0x865c('0x34')](_0x1c9ef9[_0x865c('0x35')]);_0x5c3a85[_0x865c('0x3c')]=_[_0x865c('0x49')](_0x5c3a85[_0x865c('0x33')],_0x5c3a85[_0x865c('0x35')]);_0x46cbd6[_0x865c('0x37')]=_['intersection'](_0x5c3a85[_0x865c('0x33')],qs[_0x865c('0x36')](_0x1c9ef9[_0x865c('0x35')][_0x865c('0x36')]));_0x46cbd6[_0x865c('0x37')]=_0x46cbd6[_0x865c('0x37')][_0x865c('0x38')]?_0x46cbd6[_0x865c('0x37')]:_0x5c3a85[_0x865c('0x33')];if(_0x1c9ef9[_0x865c('0x35')][_0x865c('0x43')]){_0x46cbd6['include']=[{'all':!![]}];}_0x46cbd6=_[_0x865c('0x41')]({},_0x46cbd6,_0x1c9ef9[_0x865c('0x42')]);return db[_0x865c('0x2f')][_0x865c('0x4a')](_0x46cbd6)[_0x865c('0x26')](handleEntityNotFound(_0x2a8860,null))[_0x865c('0x26')](respondWithResult(_0x2a8860,null))['catch'](handleError(_0x2a8860,null));};exports[_0x865c('0x4b')]=function(_0x653a5c,_0x4aee1a){return db['SquareOdbc'][_0x865c('0x4b')](_0x653a5c['body'],{})[_0x865c('0x26')](function(_0x43998d){var _0x371834=_0x653a5c[_0x865c('0x4c')]['get']({'plain':!![]});if(!_0x371834)throw new Error(_0x865c('0x4d'));if(_0x371834[_0x865c('0x4e')]===_0x865c('0x4c')){var _0x4530b1=_0x43998d['get']({'plain':!![]});var _0x1ce3c9='ODBC';return db[_0x865c('0x4f')]['find']({'where':{'name':_0x1ce3c9,'userProfileId':_0x371834['userProfileId']},'raw':!![]})['then'](function(_0x3e500a){if(_0x3e500a&&_0x3e500a['autoAssociation']===0x0){return db[_0x865c('0x29')]['create']({'name':_0x4530b1[_0x865c('0x2c')],'resourceId':_0x4530b1['id'],'type':_0x3e500a[_0x865c('0x2c')],'sectionId':_0x3e500a['id']},{})[_0x865c('0x26')](function(){return _0x43998d;});}else{return _0x43998d;}})[_0x865c('0x47')](function(_0xe63d17){logger[_0x865c('0x2b')](_0x865c('0x50'),_0xe63d17);throw _0xe63d17;});}return _0x43998d;})[_0x865c('0x26')](respondWithResult(_0x4aee1a,0xc9))['catch'](handleError(_0x4aee1a,null));};exports[_0x865c('0x25')]=function(_0x2ece00,_0x14bc37){if(_0x2ece00[_0x865c('0x51')]['id']){delete _0x2ece00[_0x865c('0x51')]['id'];}return db[_0x865c('0x2f')][_0x865c('0x4a')]({'where':{'id':_0x2ece00[_0x865c('0x52')]['id']}})[_0x865c('0x26')](handleEntityNotFound(_0x14bc37,null))[_0x865c('0x26')](saveUpdates(_0x2ece00[_0x865c('0x51')],null))[_0x865c('0x26')](respondWithResult(_0x14bc37,null))[_0x865c('0x47')](handleError(_0x14bc37,null));};exports['destroy']=function(_0x5d0b8b,_0x42c179){return db[_0x865c('0x2f')]['find']({'where':{'id':_0x5d0b8b['params']['id']}})['then'](handleEntityNotFound(_0x42c179,null))[_0x865c('0x26')](removeEntity(_0x42c179,null))[_0x865c('0x47')](handleError(_0x42c179,null));};exports[_0x865c('0x53')]=function(_0x2fa675,_0x1398a8,_0x295cbe){var _0x1c50a0;return db[_0x865c('0x2f')][_0x865c('0x4a')]({'where':{'id':_0x2fa675['params']['id']},'attributes':['id',_0x865c('0x54')]})[_0x865c('0x26')](handleEntityNotFound(_0x1398a8,null))[_0x865c('0x26')](function(_0x480a18){if(_0x480a18){var _0x1c3d63=require(_0x865c('0x55'))();_0x1c3d63[_0x865c('0x56')](_0x480a18[_0x865c('0x54')]);_0x1c3d63['closeSync']();return _0x480a18;}})[_0x865c('0x26')](respondWithResult(_0x1398a8,null))['catch'](handleError(_0x1398a8,null));};