822ddac856bdd519323423a8e8e5894bf7f126e8
[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 _0xe898=['filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','SquareOdbc','filters','create','body','user','role','UserProfileSection','find','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','dsn','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','undefined','limit','offset','count','set','Content-Range','json','apply','reject','save','update','then','get','destroy','error','stack','name','send','index','map','rawAttributes','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','pick'];(function(_0x339cbe,_0x38a898){var _0x2fe6d2=function(_0x1c4645){while(--_0x1c4645){_0x339cbe['push'](_0x339cbe['shift']());}};_0x2fe6d2(++_0x38a898);}(_0xe898,0x175));var _0x8e89=function(_0x29bfbe,_0x37060a){_0x29bfbe=_0x29bfbe-0x0;var _0x230663=_0xe898[_0x29bfbe];return _0x230663;};'use strict';var emlformat=require(_0x8e89('0x0'));var rimraf=require(_0x8e89('0x1'));var zipdir=require(_0x8e89('0x2'));var jsonpatch=require(_0x8e89('0x3'));var rp=require(_0x8e89('0x4'));var moment=require('moment');var BPromise=require(_0x8e89('0x5'));var Mustache=require(_0x8e89('0x6'));var util=require(_0x8e89('0x7'));var path=require(_0x8e89('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8e89('0x9'));var fs=require('fs');var fs_extra=require(_0x8e89('0xa'));var _=require(_0x8e89('0xb'));var squel=require(_0x8e89('0xc'));var crypto=require('crypto');var jsforce=require(_0x8e89('0xd'));var deskjs=require(_0x8e89('0xe'));var toCsv=require(_0x8e89('0xf'));var querystring=require(_0x8e89('0x10'));var Papa=require(_0x8e89('0x11'));var Redis=require(_0x8e89('0x12'));var authService=require(_0x8e89('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x8e89('0x14'));var hardwareService=require(_0x8e89('0x15'));var logger=require(_0x8e89('0x16'))('api');var utils=require(_0x8e89('0x17'));var config=require(_0x8e89('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1c0e48,_0x23401b){_0x23401b=_0x23401b||0xcc;return function(_0x18e0a6){if(_0x18e0a6){return _0x1c0e48[_0x8e89('0x19')](_0x23401b);}return _0x1c0e48[_0x8e89('0x1a')](_0x23401b)[_0x8e89('0x1b')]();};}function respondWithResult(_0x4866df,_0x55b9c8){_0x55b9c8=_0x55b9c8||0xc8;return function(_0x5aa619){if(_0x5aa619){return _0x4866df[_0x8e89('0x1a')](_0x55b9c8)['json'](_0x5aa619);}};}function respondWithFilteredResult(_0x1787b8,_0x458500){return function(_0x18375a){if(_0x18375a){var _0x1130b0=typeof _0x458500['offset']===_0x8e89('0x1c')&&typeof _0x458500[_0x8e89('0x1d')]===_0x8e89('0x1c');var _0x43d8fb=_0x18375a['count'];var _0x2373d3=_0x1130b0?0x0:_0x458500[_0x8e89('0x1e')];var _0x4a57c5=_0x1130b0?_0x18375a[_0x8e89('0x1f')]:_0x458500['offset']+_0x458500['limit'];var _0x38065a;if(_0x4a57c5>=_0x43d8fb){_0x4a57c5=_0x43d8fb;_0x38065a=0xc8;}else{_0x38065a=0xce;}_0x1787b8[_0x8e89('0x1a')](_0x38065a);return _0x1787b8[_0x8e89('0x20')](_0x8e89('0x21'),_0x2373d3+'-'+_0x4a57c5+'/'+_0x43d8fb)[_0x8e89('0x22')](_0x18375a);}return null;};}function patchUpdates(_0x15fd1b){return function(_0x11509d){try{jsonpatch[_0x8e89('0x23')](_0x11509d,_0x15fd1b,!![]);}catch(_0x5d3e56){return BPromise[_0x8e89('0x24')](_0x5d3e56);}return _0x11509d[_0x8e89('0x25')]();};}function saveUpdates(_0x3708b2,_0x35668b){return function(_0xf8743f){if(_0xf8743f){return _0xf8743f[_0x8e89('0x26')](_0x3708b2)[_0x8e89('0x27')](function(_0x135324){return _0x135324;});}return null;};}function removeEntity(_0x7ba3a2,_0x675559){return function(_0x5c9685){if(_0x5c9685){return _0x5c9685['destroy']()[_0x8e89('0x27')](function(){var _0x599ccc=_0x5c9685[_0x8e89('0x28')]({'plain':!![]});var _0x51e61b='ODBC';return db['UserProfileResource'][_0x8e89('0x29')]({'where':{'type':_0x51e61b,'resourceId':_0x599ccc['id']}})['then'](function(){return _0x5c9685;});})[_0x8e89('0x27')](function(){_0x7ba3a2[_0x8e89('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51bc3c,_0xc77a37){return function(_0xbcfa8e){if(!_0xbcfa8e){_0x51bc3c[_0x8e89('0x19')](0x194);}return _0xbcfa8e;};}function handleError(_0x2a90fd,_0x395004){_0x395004=_0x395004||0x1f4;return function(_0x495e94){logger[_0x8e89('0x2a')](_0x495e94[_0x8e89('0x2b')]);if(_0x495e94['name']){delete _0x495e94[_0x8e89('0x2c')];}_0x2a90fd[_0x8e89('0x1a')](_0x395004)[_0x8e89('0x2d')](_0x495e94);};}exports[_0x8e89('0x2e')]=function(_0x164a64,_0x54607c){var _0x5c137c={},_0x252c4a={},_0x20f84={'count':0x0,'rows':[]};var _0x50032d=_[_0x8e89('0x2f')](db['SquareOdbc'][_0x8e89('0x30')],function(_0x173688){return{'name':_0x173688['fieldName'],'type':_0x173688[_0x8e89('0x31')][_0x8e89('0x32')]};});_0x252c4a['model']=_[_0x8e89('0x2f')](_0x50032d,'name');_0x252c4a[_0x8e89('0x33')]=_[_0x8e89('0x34')](_0x164a64['query']);_0x252c4a['filters']=_[_0x8e89('0x35')](_0x252c4a[_0x8e89('0x36')],_0x252c4a[_0x8e89('0x33')]);_0x5c137c[_0x8e89('0x37')]=_[_0x8e89('0x35')](_0x252c4a[_0x8e89('0x36')],qs[_0x8e89('0x38')](_0x164a64['query'][_0x8e89('0x38')]));_0x5c137c[_0x8e89('0x37')]=_0x5c137c[_0x8e89('0x37')][_0x8e89('0x39')]?_0x5c137c[_0x8e89('0x37')]:_0x252c4a['model'];if(!_0x164a64['query'][_0x8e89('0x3a')](_0x8e89('0x3b'))){_0x5c137c[_0x8e89('0x1d')]=qs['limit'](_0x164a64['query'][_0x8e89('0x1d')]);_0x5c137c[_0x8e89('0x1e')]=qs[_0x8e89('0x1e')](_0x164a64['query']['offset']);}_0x5c137c['order']=qs[_0x8e89('0x3c')](_0x164a64[_0x8e89('0x33')][_0x8e89('0x3c')]);_0x5c137c['where']=qs['filters'](_[_0x8e89('0x3d')](_0x164a64[_0x8e89('0x33')],_0x252c4a['filters']),_0x50032d);if(_0x164a64['query'][_0x8e89('0x3e')]){_0x5c137c[_0x8e89('0x3f')]=_[_0x8e89('0x40')](_0x5c137c[_0x8e89('0x3f')],{'$or':_[_0x8e89('0x2f')](_0x50032d,function(_0x3a7e24){if(_0x3a7e24[_0x8e89('0x31')]!==_0x8e89('0x41')){var _0x11e4e6={};_0x11e4e6[_0x3a7e24['name']]={'$like':'%'+_0x164a64[_0x8e89('0x33')][_0x8e89('0x3e')]+'%'};return _0x11e4e6;}})});}_0x5c137c=_[_0x8e89('0x40')]({},_0x5c137c,_0x164a64[_0x8e89('0x42')]);var _0x48837f={'where':_0x5c137c[_0x8e89('0x3f')]};return db['SquareOdbc']['count'](_0x48837f)[_0x8e89('0x27')](function(_0x81715){_0x20f84[_0x8e89('0x1f')]=_0x81715;if(_0x164a64['query'][_0x8e89('0x43')]){_0x5c137c[_0x8e89('0x44')]=[{'all':!![]}];}return db['SquareOdbc'][_0x8e89('0x45')](_0x5c137c);})[_0x8e89('0x27')](function(_0xcf200d){_0x20f84[_0x8e89('0x46')]=_0xcf200d;return _0x20f84;})['then'](respondWithFilteredResult(_0x54607c,_0x5c137c))[_0x8e89('0x47')](handleError(_0x54607c,null));};exports[_0x8e89('0x48')]=function(_0x508f1e,_0x47dd87){var _0x388489={'raw':!![],'where':{'id':_0x508f1e[_0x8e89('0x49')]['id']}},_0x530c63={};_0x530c63[_0x8e89('0x36')]=_['keys'](db[_0x8e89('0x4a')][_0x8e89('0x30')]);_0x530c63[_0x8e89('0x33')]=_[_0x8e89('0x34')](_0x508f1e[_0x8e89('0x33')]);_0x530c63[_0x8e89('0x4b')]=_[_0x8e89('0x35')](_0x530c63[_0x8e89('0x36')],_0x530c63['query']);_0x388489['attributes']=_[_0x8e89('0x35')](_0x530c63[_0x8e89('0x36')],qs['fields'](_0x508f1e[_0x8e89('0x33')][_0x8e89('0x38')]));_0x388489[_0x8e89('0x37')]=_0x388489[_0x8e89('0x37')][_0x8e89('0x39')]?_0x388489[_0x8e89('0x37')]:_0x530c63[_0x8e89('0x36')];if(_0x508f1e['query'][_0x8e89('0x43')]){_0x388489['include']=[{'all':!![]}];}_0x388489=_[_0x8e89('0x40')]({},_0x388489,_0x508f1e[_0x8e89('0x42')]);return db[_0x8e89('0x4a')]['find'](_0x388489)[_0x8e89('0x27')](handleEntityNotFound(_0x47dd87,null))['then'](respondWithResult(_0x47dd87,null))[_0x8e89('0x47')](handleError(_0x47dd87,null));};exports[_0x8e89('0x4c')]=function(_0x3ee90f,_0x6f7d0e){return db[_0x8e89('0x4a')][_0x8e89('0x4c')](_0x3ee90f[_0x8e89('0x4d')],{})['then'](function(_0x2a37e1){var _0x7d1eb7=_0x3ee90f[_0x8e89('0x4e')][_0x8e89('0x28')]({'plain':!![]});if(!_0x7d1eb7)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x7d1eb7[_0x8e89('0x4f')]===_0x8e89('0x4e')){var _0x4080d4=_0x2a37e1[_0x8e89('0x28')]({'plain':!![]});var _0x629394='ODBC';return db[_0x8e89('0x50')][_0x8e89('0x51')]({'where':{'name':_0x629394,'userProfileId':_0x7d1eb7['userProfileId']},'raw':!![]})[_0x8e89('0x27')](function(_0x3b7a05){if(_0x3b7a05&&_0x3b7a05[_0x8e89('0x52')]===0x0){return db[_0x8e89('0x53')][_0x8e89('0x4c')]({'name':_0x4080d4[_0x8e89('0x2c')],'resourceId':_0x4080d4['id'],'type':_0x3b7a05[_0x8e89('0x2c')],'sectionId':_0x3b7a05['id']},{})['then'](function(){return _0x2a37e1;});}else{return _0x2a37e1;}})[_0x8e89('0x47')](function(_0x18a07d){logger[_0x8e89('0x2a')](_0x8e89('0x54'),_0x18a07d);throw _0x18a07d;});}return _0x2a37e1;})[_0x8e89('0x27')](respondWithResult(_0x6f7d0e,0xc9))[_0x8e89('0x47')](handleError(_0x6f7d0e,null));};exports['update']=function(_0x108b49,_0x2c1999){if(_0x108b49[_0x8e89('0x4d')]['id']){delete _0x108b49[_0x8e89('0x4d')]['id'];}return db['SquareOdbc']['find']({'where':{'id':_0x108b49[_0x8e89('0x49')]['id']}})['then'](handleEntityNotFound(_0x2c1999,null))['then'](saveUpdates(_0x108b49['body'],null))[_0x8e89('0x27')](respondWithResult(_0x2c1999,null))['catch'](handleError(_0x2c1999,null));};exports[_0x8e89('0x29')]=function(_0x477aca,_0x38c254){return db['SquareOdbc'][_0x8e89('0x51')]({'where':{'id':_0x477aca[_0x8e89('0x49')]['id']}})['then'](handleEntityNotFound(_0x38c254,null))[_0x8e89('0x27')](removeEntity(_0x38c254,null))[_0x8e89('0x47')](handleError(_0x38c254,null));};exports['test']=function(_0x124b7a,_0x1fb913,_0x2f7257){var _0x22fef9;return db['SquareOdbc'][_0x8e89('0x51')]({'where':{'id':_0x124b7a[_0x8e89('0x49')]['id']},'attributes':['id',_0x8e89('0x55')]})['then'](handleEntityNotFound(_0x1fb913,null))[_0x8e89('0x27')](function(_0x296103){if(_0x296103){var _0x11d7ec=require('odbc')();_0x11d7ec['openSync'](_0x296103[_0x8e89('0x55')]);_0x11d7ec[_0x8e89('0x56')]();return _0x296103;}})[_0x8e89('0x27')](respondWithResult(_0x1fb913,null))[_0x8e89('0x47')](handleError(_0x1fb913,null));};