fa656fde6c95f93de679386019ed740dfbfb6881
[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 _0xc0b2=['path','sox','to-csv','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','ODBC','UserProfileResource','error','name','send','index','map','SquareOdbc','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','params','rawAttributes','find','catch','create','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','test','dsn','odbc','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache'];(function(_0x4f217f,_0x313163){var _0x3b583a=function(_0x334971){while(--_0x334971){_0x4f217f['push'](_0x4f217f['shift']());}};_0x3b583a(++_0x313163);}(_0xc0b2,0x197));var _0x2c0b=function(_0x29b609,_0x19d388){_0x29b609=_0x29b609-0x0;var _0x54c952=_0xc0b2[_0x29b609];return _0x54c952;};'use strict';var pdf=require(_0x2c0b('0x0'));var emlformat=require(_0x2c0b('0x1'));var rimraf=require(_0x2c0b('0x2'));var zipdir=require(_0x2c0b('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2c0b('0x4'));var moment=require(_0x2c0b('0x5'));var BPromise=require(_0x2c0b('0x6'));var Mustache=require(_0x2c0b('0x7'));var util=require('util');var path=require(_0x2c0b('0x8'));var sox=require(_0x2c0b('0x9'));var csv=require(_0x2c0b('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x2c0b('0xb'));var crypto=require('crypto');var jsforce=require(_0x2c0b('0xc'));var deskjs=require(_0x2c0b('0xd'));var toCsv=require(_0x2c0b('0xa'));var querystring=require(_0x2c0b('0xe'));var Papa=require(_0x2c0b('0xf'));var Redis=require(_0x2c0b('0x10'));var authService=require(_0x2c0b('0x11'));var qs=require(_0x2c0b('0x12'));var as=require(_0x2c0b('0x13'));var hardwareService=require(_0x2c0b('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x2c0b('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x2c0b('0x16'))['db'];function respondWithStatusCode(_0xe5d806,_0x1c65db){_0x1c65db=_0x1c65db||0xcc;return function(_0x32b394){if(_0x32b394){return _0xe5d806[_0x2c0b('0x17')](_0x1c65db);}return _0xe5d806[_0x2c0b('0x18')](_0x1c65db)[_0x2c0b('0x19')]();};}function respondWithResult(_0x14638a,_0x194483){_0x194483=_0x194483||0xc8;return function(_0x1d9511){if(_0x1d9511){return _0x14638a[_0x2c0b('0x18')](_0x194483)[_0x2c0b('0x1a')](_0x1d9511);}};}function respondWithFilteredResult(_0x5a4dcf,_0x349805){return function(_0x26e19a){if(_0x26e19a){var _0x17d552=_0x26e19a[_0x2c0b('0x1b')],_0x2653f6=_0x349805[_0x2c0b('0x1c')],_0x48d037=_0x349805['offset']+_0x349805[_0x2c0b('0x1d')],_0x5de567;if(_0x48d037>=_0x17d552){_0x48d037=_0x17d552;_0x5de567=0xc8;}else{_0x5de567=0xce;}_0x5a4dcf['status'](_0x5de567);return _0x5a4dcf[_0x2c0b('0x1e')](_0x2c0b('0x1f'),_0x2653f6+'-'+_0x48d037+'/'+_0x17d552)[_0x2c0b('0x1a')](_0x26e19a);}return null;};}function patchUpdates(_0x126bcc){return function(_0x2eed84){try{jsonpatch[_0x2c0b('0x20')](_0x2eed84,_0x126bcc,!![]);}catch(_0x404f66){return BPromise[_0x2c0b('0x21')](_0x404f66);}return _0x2eed84[_0x2c0b('0x22')]();};}function saveUpdates(_0x219bd3,_0x4fbc78){return function(_0x4ad03a){if(_0x4ad03a){return _0x4ad03a[_0x2c0b('0x23')](_0x219bd3)['then'](function(_0x23449c){return _0x23449c;});}return null;};}function removeEntity(_0x1746ab,_0x5a1302){return function(_0x4dfa41){if(_0x4dfa41){return _0x4dfa41[_0x2c0b('0x24')]()[_0x2c0b('0x25')](function(){var _0x25a351=_0x4dfa41[_0x2c0b('0x26')]({'plain':!![]});var _0x1fbb6d=_0x2c0b('0x27');return db[_0x2c0b('0x28')][_0x2c0b('0x24')]({'where':{'type':_0x1fbb6d,'resourceId':_0x25a351['id']}})[_0x2c0b('0x25')](function(){return _0x4dfa41;});})[_0x2c0b('0x25')](function(){_0x1746ab[_0x2c0b('0x18')](0xcc)[_0x2c0b('0x19')]();});}};}function handleEntityNotFound(_0x1ff736,_0x300a81){return function(_0x26da1b){if(!_0x26da1b){_0x1ff736['sendStatus'](0x194);}return _0x26da1b;};}function handleError(_0x37b4a7,_0x50c954){_0x50c954=_0x50c954||0x1f4;return function(_0x190140){logger[_0x2c0b('0x29')](_0x190140['stack']);if(_0x190140[_0x2c0b('0x2a')]){delete _0x190140[_0x2c0b('0x2a')];}_0x37b4a7[_0x2c0b('0x18')](_0x50c954)[_0x2c0b('0x2b')](_0x190140);};}exports[_0x2c0b('0x2c')]=function(_0x46c873,_0xb86d6a){var _0x1b176b={},_0x12b46c={},_0x4828c4={'count':0x0,'rows':[]};var _0xad2308=_[_0x2c0b('0x2d')](db[_0x2c0b('0x2e')]['rawAttributes'],function(_0x12e1a9){return{'name':_0x12e1a9[_0x2c0b('0x2f')],'type':_0x12e1a9[_0x2c0b('0x30')][_0x2c0b('0x31')]};});_0x12b46c[_0x2c0b('0x32')]=_[_0x2c0b('0x2d')](_0xad2308,_0x2c0b('0x2a'));_0x12b46c['query']=_[_0x2c0b('0x33')](_0x46c873[_0x2c0b('0x34')]);_0x12b46c[_0x2c0b('0x35')]=_[_0x2c0b('0x36')](_0x12b46c[_0x2c0b('0x32')],_0x12b46c[_0x2c0b('0x34')]);_0x1b176b[_0x2c0b('0x37')]=_[_0x2c0b('0x36')](_0x12b46c[_0x2c0b('0x32')],qs[_0x2c0b('0x38')](_0x46c873[_0x2c0b('0x34')][_0x2c0b('0x38')]));_0x1b176b['attributes']=_0x1b176b[_0x2c0b('0x37')][_0x2c0b('0x39')]?_0x1b176b['attributes']:_0x12b46c[_0x2c0b('0x32')];if(!_0x46c873[_0x2c0b('0x34')][_0x2c0b('0x3a')](_0x2c0b('0x3b'))){_0x1b176b[_0x2c0b('0x1d')]=qs[_0x2c0b('0x1d')](_0x46c873['query'][_0x2c0b('0x1d')]);_0x1b176b[_0x2c0b('0x1c')]=qs[_0x2c0b('0x1c')](_0x46c873[_0x2c0b('0x34')][_0x2c0b('0x1c')]);}_0x1b176b['order']=qs[_0x2c0b('0x3c')](_0x46c873[_0x2c0b('0x34')][_0x2c0b('0x3c')]);_0x1b176b['where']=qs['filters'](_[_0x2c0b('0x3d')](_0x46c873[_0x2c0b('0x34')],_0x12b46c[_0x2c0b('0x35')]),_0xad2308);if(_0x46c873[_0x2c0b('0x34')][_0x2c0b('0x3e')]){_0x1b176b[_0x2c0b('0x3f')]=_[_0x2c0b('0x40')](_0x1b176b['where'],{'$or':_['map'](_0xad2308,function(_0xbddfe8){if(_0xbddfe8[_0x2c0b('0x30')]!==_0x2c0b('0x41')){var _0x5af7cc={};_0x5af7cc[_0xbddfe8[_0x2c0b('0x2a')]]={'$like':'%'+_0x46c873[_0x2c0b('0x34')][_0x2c0b('0x3e')]+'%'};return _0x5af7cc;}})});}_0x1b176b=_[_0x2c0b('0x40')]({},_0x1b176b,_0x46c873[_0x2c0b('0x42')]);var _0x11af8b={'where':_0x1b176b[_0x2c0b('0x3f')]};return db[_0x2c0b('0x2e')][_0x2c0b('0x1b')](_0x11af8b)[_0x2c0b('0x25')](function(_0xe7bca0){_0x4828c4[_0x2c0b('0x1b')]=_0xe7bca0;if(_0x46c873[_0x2c0b('0x34')][_0x2c0b('0x43')]){_0x1b176b[_0x2c0b('0x44')]=[{'all':!![]}];}return db[_0x2c0b('0x2e')]['findAll'](_0x1b176b);})[_0x2c0b('0x25')](function(_0x43633a){_0x4828c4['rows']=_0x43633a;return _0x4828c4;})[_0x2c0b('0x25')](respondWithFilteredResult(_0xb86d6a,_0x1b176b))['catch'](handleError(_0xb86d6a,null));};exports['show']=function(_0x26c9f4,_0x12afb9){var _0x3d3186={'raw':!![],'where':{'id':_0x26c9f4[_0x2c0b('0x45')]['id']}},_0x56c0a4={};_0x56c0a4[_0x2c0b('0x32')]=_[_0x2c0b('0x33')](db['SquareOdbc'][_0x2c0b('0x46')]);_0x56c0a4[_0x2c0b('0x34')]=_[_0x2c0b('0x33')](_0x26c9f4[_0x2c0b('0x34')]);_0x56c0a4[_0x2c0b('0x35')]=_[_0x2c0b('0x36')](_0x56c0a4[_0x2c0b('0x32')],_0x56c0a4[_0x2c0b('0x34')]);_0x3d3186[_0x2c0b('0x37')]=_['intersection'](_0x56c0a4[_0x2c0b('0x32')],qs['fields'](_0x26c9f4['query'][_0x2c0b('0x38')]));_0x3d3186[_0x2c0b('0x37')]=_0x3d3186['attributes'][_0x2c0b('0x39')]?_0x3d3186[_0x2c0b('0x37')]:_0x56c0a4[_0x2c0b('0x32')];if(_0x26c9f4[_0x2c0b('0x34')][_0x2c0b('0x43')]){_0x3d3186[_0x2c0b('0x44')]=[{'all':!![]}];}_0x3d3186=_['merge']({},_0x3d3186,_0x26c9f4[_0x2c0b('0x42')]);return db[_0x2c0b('0x2e')][_0x2c0b('0x47')](_0x3d3186)['then'](handleEntityNotFound(_0x12afb9,null))[_0x2c0b('0x25')](respondWithResult(_0x12afb9,null))[_0x2c0b('0x48')](handleError(_0x12afb9,null));};exports['create']=function(_0x166e9d,_0x161c80){return db[_0x2c0b('0x2e')][_0x2c0b('0x49')](_0x166e9d['body'],{})[_0x2c0b('0x25')](function(_0x1cbf06){var _0x468351=_0x166e9d[_0x2c0b('0x4a')][_0x2c0b('0x26')]({'plain':!![]});if(!_0x468351)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x468351['role']===_0x2c0b('0x4a')){var _0x59aa5f=_0x1cbf06['get']({'plain':!![]});var _0x4cd3da=_0x2c0b('0x27');return db[_0x2c0b('0x4b')][_0x2c0b('0x47')]({'where':{'name':_0x4cd3da,'userProfileId':_0x468351[_0x2c0b('0x4c')]},'raw':!![]})['then'](function(_0x44915e){if(_0x44915e&&_0x44915e[_0x2c0b('0x4d')]===0x0){return db[_0x2c0b('0x28')][_0x2c0b('0x49')]({'name':_0x59aa5f[_0x2c0b('0x2a')],'resourceId':_0x59aa5f['id'],'type':_0x44915e[_0x2c0b('0x2a')],'sectionId':_0x44915e['id']},{})[_0x2c0b('0x25')](function(){return _0x1cbf06;});}else{return _0x1cbf06;}})['catch'](function(_0x195ef5){logger[_0x2c0b('0x29')](_0x2c0b('0x4e'),_0x195ef5);throw _0x195ef5;});}return _0x1cbf06;})[_0x2c0b('0x25')](respondWithResult(_0x161c80,0xc9))[_0x2c0b('0x48')](handleError(_0x161c80,null));};exports['update']=function(_0xd4cc6d,_0x1ad902){if(_0xd4cc6d[_0x2c0b('0x4f')]['id']){delete _0xd4cc6d[_0x2c0b('0x4f')]['id'];}return db[_0x2c0b('0x2e')][_0x2c0b('0x47')]({'where':{'id':_0xd4cc6d[_0x2c0b('0x45')]['id']}})[_0x2c0b('0x25')](handleEntityNotFound(_0x1ad902,null))[_0x2c0b('0x25')](saveUpdates(_0xd4cc6d[_0x2c0b('0x4f')],null))[_0x2c0b('0x25')](respondWithResult(_0x1ad902,null))[_0x2c0b('0x48')](handleError(_0x1ad902,null));};exports[_0x2c0b('0x24')]=function(_0x5f4916,_0x104d5a){return db[_0x2c0b('0x2e')][_0x2c0b('0x47')]({'where':{'id':_0x5f4916[_0x2c0b('0x45')]['id']}})[_0x2c0b('0x25')](handleEntityNotFound(_0x104d5a,null))['then'](removeEntity(_0x104d5a,null))['catch'](handleError(_0x104d5a,null));};exports[_0x2c0b('0x50')]=function(_0x3c749d,_0x431400,_0x3f71e9){var _0x1c3542;return db[_0x2c0b('0x2e')]['find']({'where':{'id':_0x3c749d['params']['id']},'attributes':['id',_0x2c0b('0x51')]})[_0x2c0b('0x25')](handleEntityNotFound(_0x431400,null))[_0x2c0b('0x25')](function(_0x4629b6){if(_0x4629b6){var _0x5f4598=require(_0x2c0b('0x52'))();_0x5f4598['openSync'](_0x4629b6[_0x2c0b('0x51')]);_0x5f4598['closeSync']();return _0x4629b6;}})['then'](respondWithResult(_0x431400,null))[_0x2c0b('0x48')](handleError(_0x431400,null));};