79ea0cc8dd88526552af5b77536fa719e78eee5e
[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 _0xbe78=['mustache','util','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','then','get','ODBC','destroy','error','stack','name','index','map','SquareOdbc','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','merge','filter','includeAll','include','findAll','params','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','test','dsn','odbc','openSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird'];(function(_0x141017,_0x4223ba){var _0x377c66=function(_0x3ca5e0){while(--_0x3ca5e0){_0x141017['push'](_0x141017['shift']());}};_0x377c66(++_0x4223ba);}(_0xbe78,0x156));var _0x8be7=function(_0x930141,_0x4367c2){_0x930141=_0x930141-0x0;var _0x5bbad7=_0xbe78[_0x930141];return _0x5bbad7;};'use strict';var emlformat=require(_0x8be7('0x0'));var rimraf=require(_0x8be7('0x1'));var zipdir=require(_0x8be7('0x2'));var jsonpatch=require(_0x8be7('0x3'));var rp=require('request-promise');var moment=require(_0x8be7('0x4'));var BPromise=require(_0x8be7('0x5'));var Mustache=require(_0x8be7('0x6'));var util=require(_0x8be7('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8be7('0x8'));var fs=require('fs');var fs_extra=require(_0x8be7('0x9'));var _=require(_0x8be7('0xa'));var squel=require(_0x8be7('0xb'));var crypto=require(_0x8be7('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x8be7('0xd'));var toCsv=require(_0x8be7('0xe'));var querystring=require(_0x8be7('0xf'));var Papa=require(_0x8be7('0x10'));var Redis=require(_0x8be7('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8be7('0x12'));var as=require(_0x8be7('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8be7('0x14'))(_0x8be7('0x15'));var utils=require(_0x8be7('0x16'));var config=require(_0x8be7('0x17'));var licenseUtil=require(_0x8be7('0x18'));var db=require(_0x8be7('0x19'))['db'];function respondWithStatusCode(_0x250580,_0x2c8288){_0x2c8288=_0x2c8288||0xcc;return function(_0x208d7b){if(_0x208d7b){return _0x250580[_0x8be7('0x1a')](_0x2c8288);}return _0x250580[_0x8be7('0x1b')](_0x2c8288)[_0x8be7('0x1c')]();};}function respondWithResult(_0x394c6a,_0x2d6a8f){_0x2d6a8f=_0x2d6a8f||0xc8;return function(_0x591b8c){if(_0x591b8c){return _0x394c6a['status'](_0x2d6a8f)[_0x8be7('0x1d')](_0x591b8c);}};}function respondWithFilteredResult(_0x10028b,_0x24a27d){return function(_0xae7a77){if(_0xae7a77){var _0x10b9c4=typeof _0x24a27d['offset']===_0x8be7('0x1e')&&typeof _0x24a27d[_0x8be7('0x1f')]==='undefined';var _0x37459c=_0xae7a77[_0x8be7('0x20')];var _0x31a8de=_0x10b9c4?0x0:_0x24a27d[_0x8be7('0x21')];var _0x4125b2=_0x10b9c4?_0xae7a77[_0x8be7('0x20')]:_0x24a27d['offset']+_0x24a27d[_0x8be7('0x1f')];var _0x255801;if(_0x4125b2>=_0x37459c){_0x4125b2=_0x37459c;_0x255801=0xc8;}else{_0x255801=0xce;}_0x10028b[_0x8be7('0x1b')](_0x255801);return _0x10028b[_0x8be7('0x22')](_0x8be7('0x23'),_0x31a8de+'-'+_0x4125b2+'/'+_0x37459c)['json'](_0xae7a77);}return null;};}function patchUpdates(_0x5d4a5f){return function(_0x3235c6){try{jsonpatch[_0x8be7('0x24')](_0x3235c6,_0x5d4a5f,!![]);}catch(_0x450a06){return BPromise['reject'](_0x450a06);}return _0x3235c6[_0x8be7('0x25')]();};}function saveUpdates(_0x435cb9,_0x548e91){return function(_0x229c3f){if(_0x229c3f){return _0x229c3f['update'](_0x435cb9)[_0x8be7('0x26')](function(_0x1c87c3){return _0x1c87c3;});}return null;};}function removeEntity(_0x3ba620,_0x4866d5){return function(_0x2bb6a5){if(_0x2bb6a5){return _0x2bb6a5['destroy']()[_0x8be7('0x26')](function(){var _0x35adb7=_0x2bb6a5[_0x8be7('0x27')]({'plain':!![]});var _0x728635=_0x8be7('0x28');return db['UserProfileResource'][_0x8be7('0x29')]({'where':{'type':_0x728635,'resourceId':_0x35adb7['id']}})[_0x8be7('0x26')](function(){return _0x2bb6a5;});})['then'](function(){_0x3ba620[_0x8be7('0x1b')](0xcc)[_0x8be7('0x1c')]();});}};}function handleEntityNotFound(_0x4cd245,_0x4a4434){return function(_0x5cba1f){if(!_0x5cba1f){_0x4cd245[_0x8be7('0x1a')](0x194);}return _0x5cba1f;};}function handleError(_0x12bcd8,_0xdcafbf){_0xdcafbf=_0xdcafbf||0x1f4;return function(_0x96851){logger[_0x8be7('0x2a')](_0x96851[_0x8be7('0x2b')]);if(_0x96851[_0x8be7('0x2c')]){delete _0x96851[_0x8be7('0x2c')];}_0x12bcd8[_0x8be7('0x1b')](_0xdcafbf)['send'](_0x96851);};}exports[_0x8be7('0x2d')]=function(_0x569921,_0x1f3ec4){var _0x487fef={},_0x5a4157={},_0x4fb9df={'count':0x0,'rows':[]};var _0x58ce42=_[_0x8be7('0x2e')](db[_0x8be7('0x2f')][_0x8be7('0x30')],function(_0x590887){return{'name':_0x590887[_0x8be7('0x31')],'type':_0x590887[_0x8be7('0x32')][_0x8be7('0x33')]};});_0x5a4157[_0x8be7('0x34')]=_[_0x8be7('0x2e')](_0x58ce42,_0x8be7('0x2c'));_0x5a4157[_0x8be7('0x35')]=_[_0x8be7('0x36')](_0x569921[_0x8be7('0x35')]);_0x5a4157[_0x8be7('0x37')]=_[_0x8be7('0x38')](_0x5a4157['model'],_0x5a4157[_0x8be7('0x35')]);_0x487fef[_0x8be7('0x39')]=_['intersection'](_0x5a4157[_0x8be7('0x34')],qs[_0x8be7('0x3a')](_0x569921['query']['fields']));_0x487fef[_0x8be7('0x39')]=_0x487fef[_0x8be7('0x39')][_0x8be7('0x3b')]?_0x487fef[_0x8be7('0x39')]:_0x5a4157[_0x8be7('0x34')];if(!_0x569921['query'][_0x8be7('0x3c')](_0x8be7('0x3d'))){_0x487fef[_0x8be7('0x1f')]=qs[_0x8be7('0x1f')](_0x569921['query'][_0x8be7('0x1f')]);_0x487fef[_0x8be7('0x21')]=qs['offset'](_0x569921[_0x8be7('0x35')][_0x8be7('0x21')]);}_0x487fef['order']=qs[_0x8be7('0x3e')](_0x569921[_0x8be7('0x35')][_0x8be7('0x3e')]);_0x487fef[_0x8be7('0x3f')]=qs[_0x8be7('0x37')](_['pick'](_0x569921['query'],_0x5a4157[_0x8be7('0x37')]),_0x58ce42);if(_0x569921['query']['filter']){_0x487fef[_0x8be7('0x3f')]=_[_0x8be7('0x40')](_0x487fef[_0x8be7('0x3f')],{'$or':_[_0x8be7('0x2e')](_0x58ce42,function(_0x3148c0){if(_0x3148c0[_0x8be7('0x32')]!=='VIRTUAL'){var _0x51cba7={};_0x51cba7[_0x3148c0[_0x8be7('0x2c')]]={'$like':'%'+_0x569921[_0x8be7('0x35')][_0x8be7('0x41')]+'%'};return _0x51cba7;}})});}_0x487fef=_[_0x8be7('0x40')]({},_0x487fef,_0x569921['options']);var _0x52a672={'where':_0x487fef[_0x8be7('0x3f')]};return db[_0x8be7('0x2f')][_0x8be7('0x20')](_0x52a672)[_0x8be7('0x26')](function(_0x68dfcb){_0x4fb9df[_0x8be7('0x20')]=_0x68dfcb;if(_0x569921[_0x8be7('0x35')][_0x8be7('0x42')]){_0x487fef[_0x8be7('0x43')]=[{'all':!![]}];}return db[_0x8be7('0x2f')][_0x8be7('0x44')](_0x487fef);})[_0x8be7('0x26')](function(_0x3e03ea){_0x4fb9df['rows']=_0x3e03ea;return _0x4fb9df;})[_0x8be7('0x26')](respondWithFilteredResult(_0x1f3ec4,_0x487fef))['catch'](handleError(_0x1f3ec4,null));};exports['show']=function(_0xb70fa2,_0x3a682e){var _0x2ad507={'raw':!![],'where':{'id':_0xb70fa2[_0x8be7('0x45')]['id']}},_0x497616={};_0x497616[_0x8be7('0x34')]=_['keys'](db[_0x8be7('0x2f')][_0x8be7('0x30')]);_0x497616[_0x8be7('0x35')]=_[_0x8be7('0x36')](_0xb70fa2[_0x8be7('0x35')]);_0x497616[_0x8be7('0x37')]=_[_0x8be7('0x38')](_0x497616[_0x8be7('0x34')],_0x497616[_0x8be7('0x35')]);_0x2ad507[_0x8be7('0x39')]=_[_0x8be7('0x38')](_0x497616[_0x8be7('0x34')],qs['fields'](_0xb70fa2[_0x8be7('0x35')][_0x8be7('0x3a')]));_0x2ad507[_0x8be7('0x39')]=_0x2ad507['attributes'][_0x8be7('0x3b')]?_0x2ad507[_0x8be7('0x39')]:_0x497616[_0x8be7('0x34')];if(_0xb70fa2[_0x8be7('0x35')][_0x8be7('0x42')]){_0x2ad507[_0x8be7('0x43')]=[{'all':!![]}];}_0x2ad507=_['merge']({},_0x2ad507,_0xb70fa2[_0x8be7('0x46')]);return db[_0x8be7('0x2f')]['find'](_0x2ad507)[_0x8be7('0x26')](handleEntityNotFound(_0x3a682e,null))['then'](respondWithResult(_0x3a682e,null))['catch'](handleError(_0x3a682e,null));};exports['create']=function(_0x484a46,_0x527acc){return db[_0x8be7('0x2f')][_0x8be7('0x47')](_0x484a46[_0x8be7('0x48')],{})['then'](function(_0x1e1a8e){var _0x26a4f7=_0x484a46[_0x8be7('0x49')][_0x8be7('0x27')]({'plain':!![]});if(!_0x26a4f7)throw new Error(_0x8be7('0x4a'));if(_0x26a4f7[_0x8be7('0x4b')]===_0x8be7('0x49')){var _0x3b0056=_0x1e1a8e[_0x8be7('0x27')]({'plain':!![]});var _0x5888f7=_0x8be7('0x28');return db[_0x8be7('0x4c')][_0x8be7('0x4d')]({'where':{'name':_0x5888f7,'userProfileId':_0x26a4f7[_0x8be7('0x4e')]},'raw':!![]})[_0x8be7('0x26')](function(_0x5d621c){if(_0x5d621c&&_0x5d621c['autoAssociation']===0x0){return db[_0x8be7('0x4f')]['create']({'name':_0x3b0056[_0x8be7('0x2c')],'resourceId':_0x3b0056['id'],'type':_0x5d621c['name'],'sectionId':_0x5d621c['id']},{})[_0x8be7('0x26')](function(){return _0x1e1a8e;});}else{return _0x1e1a8e;}})[_0x8be7('0x50')](function(_0x4690f8){logger[_0x8be7('0x2a')](_0x8be7('0x51'),_0x4690f8);throw _0x4690f8;});}return _0x1e1a8e;})[_0x8be7('0x26')](respondWithResult(_0x527acc,0xc9))[_0x8be7('0x50')](handleError(_0x527acc,null));};exports[_0x8be7('0x52')]=function(_0x141d63,_0x5cba43){if(_0x141d63[_0x8be7('0x48')]['id']){delete _0x141d63[_0x8be7('0x48')]['id'];}return db[_0x8be7('0x2f')][_0x8be7('0x4d')]({'where':{'id':_0x141d63[_0x8be7('0x45')]['id']}})[_0x8be7('0x26')](handleEntityNotFound(_0x5cba43,null))['then'](saveUpdates(_0x141d63[_0x8be7('0x48')],null))['then'](respondWithResult(_0x5cba43,null))[_0x8be7('0x50')](handleError(_0x5cba43,null));};exports[_0x8be7('0x29')]=function(_0x165aff,_0x18fe3e){return db['SquareOdbc'][_0x8be7('0x4d')]({'where':{'id':_0x165aff[_0x8be7('0x45')]['id']}})[_0x8be7('0x26')](handleEntityNotFound(_0x18fe3e,null))[_0x8be7('0x26')](removeEntity(_0x18fe3e,null))['catch'](handleError(_0x18fe3e,null));};exports[_0x8be7('0x53')]=function(_0x2d6485,_0xc1811b,_0x46fd82){var _0x4b747c;return db[_0x8be7('0x2f')][_0x8be7('0x4d')]({'where':{'id':_0x2d6485[_0x8be7('0x45')]['id']},'attributes':['id',_0x8be7('0x54')]})['then'](handleEntityNotFound(_0xc1811b,null))[_0x8be7('0x26')](function(_0x4ac99b){if(_0x4ac99b){var _0x4b2863=require(_0x8be7('0x55'))();_0x4b2863[_0x8be7('0x56')](_0x4ac99b[_0x8be7('0x54')]);_0x4b2863['closeSync']();return _0x4ac99b;}})[_0x8be7('0x26')](respondWithResult(_0xc1811b,null))[_0x8be7('0x50')](handleError(_0xc1811b,null));};