Built motion from commit 497d3d92.|2.5.43
[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 _0x9ce7=['SquareOdbc','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','options','includeAll','include','rows','show','params','keys','find','catch','create','body','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','openSync','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','undefined','limit','count','offset','set','Content-Range','apply','reject','save','destroy','then','get','ODBC','status','end','error','name','send','index','map'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x9ce7,0x176));var _0x79ce=function(_0x4cc43e,_0x2f7a5b){_0x4cc43e=_0x4cc43e-0x0;var _0x17a566=_0x9ce7[_0x4cc43e];return _0x17a566;};'use strict';var emlformat=require(_0x79ce('0x0'));var rimraf=require(_0x79ce('0x1'));var zipdir=require(_0x79ce('0x2'));var jsonpatch=require(_0x79ce('0x3'));var rp=require(_0x79ce('0x4'));var moment=require(_0x79ce('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x79ce('0x6'));var util=require(_0x79ce('0x7'));var path=require(_0x79ce('0x8'));var sox=require(_0x79ce('0x9'));var csv=require(_0x79ce('0xa'));var ejs=require(_0x79ce('0xb'));var fs=require('fs');var fs_extra=require(_0x79ce('0xc'));var _=require(_0x79ce('0xd'));var squel=require(_0x79ce('0xe'));var crypto=require('crypto');var jsforce=require(_0x79ce('0xf'));var deskjs=require(_0x79ce('0x10'));var toCsv=require(_0x79ce('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x79ce('0x11'));var authService=require(_0x79ce('0x12'));var qs=require(_0x79ce('0x13'));var as=require(_0x79ce('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x79ce('0x15'))(_0x79ce('0x16'));var utils=require(_0x79ce('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x79ce('0x18'))['db'];function respondWithStatusCode(_0x3e9bde,_0x44b855){_0x44b855=_0x44b855||0xcc;return function(_0x437e58){if(_0x437e58){return _0x3e9bde[_0x79ce('0x19')](_0x44b855);}return _0x3e9bde['status'](_0x44b855)['end']();};}function respondWithResult(_0x359475,_0x16ca61){_0x16ca61=_0x16ca61||0xc8;return function(_0x27d127){if(_0x27d127){return _0x359475['status'](_0x16ca61)['json'](_0x27d127);}};}function respondWithFilteredResult(_0x44b25c,_0x5777a1){return function(_0x570523){if(_0x570523){var _0x566728=typeof _0x5777a1['offset']===_0x79ce('0x1a')&&typeof _0x5777a1[_0x79ce('0x1b')]===_0x79ce('0x1a');var _0x280a95=_0x570523[_0x79ce('0x1c')];var _0x42c5c2=_0x566728?0x0:_0x5777a1['offset'];var _0x3f9085=_0x566728?_0x570523[_0x79ce('0x1c')]:_0x5777a1[_0x79ce('0x1d')]+_0x5777a1[_0x79ce('0x1b')];var _0x3b45b7;if(_0x3f9085>=_0x280a95){_0x3f9085=_0x280a95;_0x3b45b7=0xc8;}else{_0x3b45b7=0xce;}_0x44b25c['status'](_0x3b45b7);return _0x44b25c[_0x79ce('0x1e')](_0x79ce('0x1f'),_0x42c5c2+'-'+_0x3f9085+'/'+_0x280a95)['json'](_0x570523);}return null;};}function patchUpdates(_0x274d71){return function(_0x342b89){try{jsonpatch[_0x79ce('0x20')](_0x342b89,_0x274d71,!![]);}catch(_0x3339d1){return BPromise[_0x79ce('0x21')](_0x3339d1);}return _0x342b89[_0x79ce('0x22')]();};}function saveUpdates(_0x1a8e3f,_0x3f08e4){return function(_0x161f46){if(_0x161f46){return _0x161f46['update'](_0x1a8e3f)['then'](function(_0x49d7f4){return _0x49d7f4;});}return null;};}function removeEntity(_0x3d9df8,_0x2d47f4){return function(_0x4d81e9){if(_0x4d81e9){return _0x4d81e9[_0x79ce('0x23')]()[_0x79ce('0x24')](function(){var _0x4b35fe=_0x4d81e9[_0x79ce('0x25')]({'plain':!![]});var _0x2b8812=_0x79ce('0x26');return db['UserProfileResource'][_0x79ce('0x23')]({'where':{'type':_0x2b8812,'resourceId':_0x4b35fe['id']}})[_0x79ce('0x24')](function(){return _0x4d81e9;});})[_0x79ce('0x24')](function(){_0x3d9df8[_0x79ce('0x27')](0xcc)[_0x79ce('0x28')]();});}};}function handleEntityNotFound(_0x14534a,_0x369b64){return function(_0x28f027){if(!_0x28f027){_0x14534a[_0x79ce('0x19')](0x194);}return _0x28f027;};}function handleError(_0x2cc5da,_0x523054){_0x523054=_0x523054||0x1f4;return function(_0x4fb33c){logger[_0x79ce('0x29')](_0x4fb33c['stack']);if(_0x4fb33c[_0x79ce('0x2a')]){delete _0x4fb33c[_0x79ce('0x2a')];}_0x2cc5da[_0x79ce('0x27')](_0x523054)[_0x79ce('0x2b')](_0x4fb33c);};}exports[_0x79ce('0x2c')]=function(_0x48c5ed,_0x1fb3c0){var _0xa495aa={},_0x482b29={},_0x6816af={'count':0x0,'rows':[]};var _0x5cb5a8=_[_0x79ce('0x2d')](db[_0x79ce('0x2e')][_0x79ce('0x2f')],function(_0x1f1bd2){return{'name':_0x1f1bd2[_0x79ce('0x30')],'type':_0x1f1bd2['type'][_0x79ce('0x31')]};});_0x482b29[_0x79ce('0x32')]=_['map'](_0x5cb5a8,_0x79ce('0x2a'));_0x482b29[_0x79ce('0x33')]=_['keys'](_0x48c5ed[_0x79ce('0x33')]);_0x482b29[_0x79ce('0x34')]=_[_0x79ce('0x35')](_0x482b29[_0x79ce('0x32')],_0x482b29[_0x79ce('0x33')]);_0xa495aa[_0x79ce('0x36')]=_['intersection'](_0x482b29[_0x79ce('0x32')],qs[_0x79ce('0x37')](_0x48c5ed[_0x79ce('0x33')]['fields']));_0xa495aa[_0x79ce('0x36')]=_0xa495aa[_0x79ce('0x36')][_0x79ce('0x38')]?_0xa495aa[_0x79ce('0x36')]:_0x482b29[_0x79ce('0x32')];if(!_0x48c5ed['query']['hasOwnProperty']('nolimit')){_0xa495aa[_0x79ce('0x1b')]=qs['limit'](_0x48c5ed[_0x79ce('0x33')][_0x79ce('0x1b')]);_0xa495aa[_0x79ce('0x1d')]=qs[_0x79ce('0x1d')](_0x48c5ed[_0x79ce('0x33')][_0x79ce('0x1d')]);}_0xa495aa[_0x79ce('0x39')]=qs[_0x79ce('0x3a')](_0x48c5ed['query']['sort']);_0xa495aa[_0x79ce('0x3b')]=qs[_0x79ce('0x34')](_[_0x79ce('0x3c')](_0x48c5ed['query'],_0x482b29[_0x79ce('0x34')]),_0x5cb5a8);if(_0x48c5ed[_0x79ce('0x33')][_0x79ce('0x3d')]){_0xa495aa[_0x79ce('0x3b')]=_[_0x79ce('0x3e')](_0xa495aa[_0x79ce('0x3b')],{'$or':_['map'](_0x5cb5a8,function(_0x4f5180){if(_0x4f5180['type']!=='VIRTUAL'){var _0x49ac84={};_0x49ac84[_0x4f5180[_0x79ce('0x2a')]]={'$like':'%'+_0x48c5ed[_0x79ce('0x33')][_0x79ce('0x3d')]+'%'};return _0x49ac84;}})});}_0xa495aa=_['merge']({},_0xa495aa,_0x48c5ed[_0x79ce('0x3f')]);var _0x658af3={'where':_0xa495aa['where']};return db[_0x79ce('0x2e')]['count'](_0x658af3)['then'](function(_0x99720e){_0x6816af[_0x79ce('0x1c')]=_0x99720e;if(_0x48c5ed[_0x79ce('0x33')][_0x79ce('0x40')]){_0xa495aa[_0x79ce('0x41')]=[{'all':!![]}];}return db[_0x79ce('0x2e')]['findAll'](_0xa495aa);})['then'](function(_0x30dcfe){_0x6816af[_0x79ce('0x42')]=_0x30dcfe;return _0x6816af;})[_0x79ce('0x24')](respondWithFilteredResult(_0x1fb3c0,_0xa495aa))['catch'](handleError(_0x1fb3c0,null));};exports[_0x79ce('0x43')]=function(_0x768d88,_0x3a3d9c){var _0x434b60={'raw':!![],'where':{'id':_0x768d88[_0x79ce('0x44')]['id']}},_0x16d3c3={};_0x16d3c3[_0x79ce('0x32')]=_[_0x79ce('0x45')](db[_0x79ce('0x2e')]['rawAttributes']);_0x16d3c3['query']=_[_0x79ce('0x45')](_0x768d88[_0x79ce('0x33')]);_0x16d3c3[_0x79ce('0x34')]=_[_0x79ce('0x35')](_0x16d3c3['model'],_0x16d3c3[_0x79ce('0x33')]);_0x434b60['attributes']=_[_0x79ce('0x35')](_0x16d3c3['model'],qs['fields'](_0x768d88[_0x79ce('0x33')]['fields']));_0x434b60[_0x79ce('0x36')]=_0x434b60['attributes'][_0x79ce('0x38')]?_0x434b60['attributes']:_0x16d3c3[_0x79ce('0x32')];if(_0x768d88[_0x79ce('0x33')][_0x79ce('0x40')]){_0x434b60[_0x79ce('0x41')]=[{'all':!![]}];}_0x434b60=_[_0x79ce('0x3e')]({},_0x434b60,_0x768d88[_0x79ce('0x3f')]);return db[_0x79ce('0x2e')][_0x79ce('0x46')](_0x434b60)[_0x79ce('0x24')](handleEntityNotFound(_0x3a3d9c,null))[_0x79ce('0x24')](respondWithResult(_0x3a3d9c,null))[_0x79ce('0x47')](handleError(_0x3a3d9c,null));};exports[_0x79ce('0x48')]=function(_0x18fd78,_0xe356de){return db[_0x79ce('0x2e')][_0x79ce('0x48')](_0x18fd78[_0x79ce('0x49')],{})[_0x79ce('0x24')](function(_0x2d8677){var _0x571db9=_0x18fd78[_0x79ce('0x4a')][_0x79ce('0x25')]({'plain':!![]});if(!_0x571db9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x571db9['role']===_0x79ce('0x4a')){var _0x1a4c8e=_0x2d8677[_0x79ce('0x25')]({'plain':!![]});var _0x1a0747=_0x79ce('0x26');return db[_0x79ce('0x4b')]['find']({'where':{'name':_0x1a0747,'userProfileId':_0x571db9[_0x79ce('0x4c')]},'raw':!![]})['then'](function(_0x312144){if(_0x312144&&_0x312144[_0x79ce('0x4d')]===0x0){return db[_0x79ce('0x4e')]['create']({'name':_0x1a4c8e[_0x79ce('0x2a')],'resourceId':_0x1a4c8e['id'],'type':_0x312144['name'],'sectionId':_0x312144['id']},{})['then'](function(){return _0x2d8677;});}else{return _0x2d8677;}})[_0x79ce('0x47')](function(_0x310909){logger[_0x79ce('0x29')](_0x79ce('0x4f'),_0x310909);throw _0x310909;});}return _0x2d8677;})[_0x79ce('0x24')](respondWithResult(_0xe356de,0xc9))[_0x79ce('0x47')](handleError(_0xe356de,null));};exports['update']=function(_0x3844d0,_0x4ee1ce){if(_0x3844d0[_0x79ce('0x49')]['id']){delete _0x3844d0[_0x79ce('0x49')]['id'];}return db[_0x79ce('0x2e')][_0x79ce('0x46')]({'where':{'id':_0x3844d0[_0x79ce('0x44')]['id']}})[_0x79ce('0x24')](handleEntityNotFound(_0x4ee1ce,null))['then'](saveUpdates(_0x3844d0[_0x79ce('0x49')],null))[_0x79ce('0x24')](respondWithResult(_0x4ee1ce,null))['catch'](handleError(_0x4ee1ce,null));};exports[_0x79ce('0x23')]=function(_0x2eba72,_0x4f12f3){return db['SquareOdbc'][_0x79ce('0x46')]({'where':{'id':_0x2eba72[_0x79ce('0x44')]['id']}})[_0x79ce('0x24')](handleEntityNotFound(_0x4f12f3,null))['then'](removeEntity(_0x4f12f3,null))[_0x79ce('0x47')](handleError(_0x4f12f3,null));};exports[_0x79ce('0x50')]=function(_0x1d75ca,_0x41c017,_0x371346){var _0xec945c;return db['SquareOdbc']['find']({'where':{'id':_0x1d75ca['params']['id']},'attributes':['id',_0x79ce('0x51')]})[_0x79ce('0x24')](handleEntityNotFound(_0x41c017,null))[_0x79ce('0x24')](function(_0x405716){if(_0x405716){var _0x21ee5a=require('odbc')();_0x21ee5a[_0x79ce('0x52')](_0x405716[_0x79ce('0x51')]);_0x21ee5a[_0x79ce('0x53')]();return _0x405716;}})[_0x79ce('0x24')](respondWithResult(_0x41c017,null))['catch'](handleError(_0x41c017,null));};