71c213ebb92fa0938aa8d763b55bcdc41f315d36
[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 _0x7472=['attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','map','VIRTUAL','options','include','findAll','rows','catch','show','params','keys','rawAttributes','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','UserProfileResource','update','test','dsn','odbc','html-pdf','zip-dir','fast-json-patch','request-promise','util','path','to-csv','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','set','Content-Range','apply','then','destroy','get','ODBC','end','stack','name','SquareOdbc','fieldName','type','key','model','query','filters','intersection'];(function(_0x2d3e45,_0x16d47a){var _0x369ff5=function(_0x4dfc35){while(--_0x4dfc35){_0x2d3e45['push'](_0x2d3e45['shift']());}};_0x369ff5(++_0x16d47a);}(_0x7472,0xbd));var _0x2747=function(_0x143395,_0x3cf7d4){_0x143395=_0x143395-0x0;var _0x5768ff=_0x7472[_0x143395];return _0x5768ff;};'use strict';var pdf=require(_0x2747('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2747('0x1'));var jsonpatch=require(_0x2747('0x2'));var rp=require(_0x2747('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x2747('0x4'));var path=require(_0x2747('0x5'));var sox=require('sox');var csv=require(_0x2747('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x2747('0x7'));var squel=require('squel');var crypto=require(_0x2747('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x2747('0x9'));var toCsv=require(_0x2747('0x6'));var querystring=require(_0x2747('0xa'));var Papa=require(_0x2747('0xb'));var Redis=require(_0x2747('0xc'));var authService=require(_0x2747('0xd'));var qs=require(_0x2747('0xe'));var as=require(_0x2747('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x2747('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0x2747('0x11'));var db=require(_0x2747('0x12'))['db'];function respondWithStatusCode(_0x517fe0,_0x5c25a8){_0x5c25a8=_0x5c25a8||0xcc;return function(_0x11d8a2){if(_0x11d8a2){return _0x517fe0[_0x2747('0x13')](_0x5c25a8);}return _0x517fe0['status'](_0x5c25a8)['end']();};}function respondWithResult(_0x143515,_0x30b838){_0x30b838=_0x30b838||0xc8;return function(_0x671121){if(_0x671121){return _0x143515[_0x2747('0x14')](_0x30b838)[_0x2747('0x15')](_0x671121);}};}function respondWithFilteredResult(_0x19fc4e,_0xec00a){return function(_0x49f295){if(_0x49f295){var _0x1824d1=_0x49f295[_0x2747('0x16')],_0x49b5cb=_0xec00a[_0x2747('0x17')],_0x3d2cad=_0xec00a['offset']+_0xec00a['limit'],_0xd9d275;if(_0x3d2cad>=_0x1824d1){_0x3d2cad=_0x1824d1;_0xd9d275=0xc8;}else{_0xd9d275=0xce;}_0x19fc4e[_0x2747('0x14')](_0xd9d275);return _0x19fc4e[_0x2747('0x18')](_0x2747('0x19'),_0x49b5cb+'-'+_0x3d2cad+'/'+_0x1824d1)[_0x2747('0x15')](_0x49f295);}return null;};}function patchUpdates(_0x4e9372){return function(_0x3c7cdc){try{jsonpatch[_0x2747('0x1a')](_0x3c7cdc,_0x4e9372,!![]);}catch(_0x346f99){return BPromise['reject'](_0x346f99);}return _0x3c7cdc['save']();};}function saveUpdates(_0x50f954,_0x104ba6){return function(_0x231b9b){if(_0x231b9b){return _0x231b9b['update'](_0x50f954)[_0x2747('0x1b')](function(_0x4e0ee5){return _0x4e0ee5;});}return null;};}function removeEntity(_0x2d3a22,_0x447f80){return function(_0xad3bcc){if(_0xad3bcc){return _0xad3bcc[_0x2747('0x1c')]()['then'](function(){var _0x5c298f=_0xad3bcc[_0x2747('0x1d')]({'plain':!![]});var _0x236232=_0x2747('0x1e');return db['UserProfileResource'][_0x2747('0x1c')]({'where':{'type':_0x236232,'resourceId':_0x5c298f['id']}})[_0x2747('0x1b')](function(){return _0xad3bcc;});})[_0x2747('0x1b')](function(){_0x2d3a22[_0x2747('0x14')](0xcc)[_0x2747('0x1f')]();});}};}function handleEntityNotFound(_0x48da8e,_0x5ec94f){return function(_0x747bc9){if(!_0x747bc9){_0x48da8e['sendStatus'](0x194);}return _0x747bc9;};}function handleError(_0x2da998,_0x5169aa){_0x5169aa=_0x5169aa||0x1f4;return function(_0x39550b){logger['error'](_0x39550b[_0x2747('0x20')]);if(_0x39550b[_0x2747('0x21')]){delete _0x39550b[_0x2747('0x21')];}_0x2da998[_0x2747('0x14')](_0x5169aa)['send'](_0x39550b);};}exports['index']=function(_0x4ced69,_0x1fe1cf){var _0x1dd3ea={},_0x3d1de8={},_0x47df11={'count':0x0,'rows':[]};var _0x1b857a=_['map'](db[_0x2747('0x22')]['rawAttributes'],function(_0x8109a4){return{'name':_0x8109a4[_0x2747('0x23')],'type':_0x8109a4[_0x2747('0x24')][_0x2747('0x25')]};});_0x3d1de8[_0x2747('0x26')]=_['map'](_0x1b857a,_0x2747('0x21'));_0x3d1de8[_0x2747('0x27')]=_['keys'](_0x4ced69[_0x2747('0x27')]);_0x3d1de8[_0x2747('0x28')]=_[_0x2747('0x29')](_0x3d1de8[_0x2747('0x26')],_0x3d1de8['query']);_0x1dd3ea[_0x2747('0x2a')]=_[_0x2747('0x29')](_0x3d1de8[_0x2747('0x26')],qs['fields'](_0x4ced69[_0x2747('0x27')][_0x2747('0x2b')]));_0x1dd3ea[_0x2747('0x2a')]=_0x1dd3ea[_0x2747('0x2a')][_0x2747('0x2c')]?_0x1dd3ea['attributes']:_0x3d1de8[_0x2747('0x26')];if(!_0x4ced69[_0x2747('0x27')][_0x2747('0x2d')](_0x2747('0x2e'))){_0x1dd3ea['limit']=qs[_0x2747('0x2f')](_0x4ced69[_0x2747('0x27')][_0x2747('0x2f')]);_0x1dd3ea[_0x2747('0x17')]=qs[_0x2747('0x17')](_0x4ced69['query'][_0x2747('0x17')]);}_0x1dd3ea['order']=qs[_0x2747('0x30')](_0x4ced69['query'][_0x2747('0x30')]);_0x1dd3ea[_0x2747('0x31')]=qs[_0x2747('0x28')](_[_0x2747('0x32')](_0x4ced69[_0x2747('0x27')],_0x3d1de8[_0x2747('0x28')]),_0x1b857a);if(_0x4ced69['query'][_0x2747('0x33')]){_0x1dd3ea[_0x2747('0x31')]=_[_0x2747('0x34')](_0x1dd3ea[_0x2747('0x31')],{'$or':_[_0x2747('0x35')](_0x1b857a,function(_0x25d39f){if(_0x25d39f[_0x2747('0x24')]!==_0x2747('0x36')){var _0x19180f={};_0x19180f[_0x25d39f[_0x2747('0x21')]]={'$like':'%'+_0x4ced69[_0x2747('0x27')]['filter']+'%'};return _0x19180f;}})});}_0x1dd3ea=_[_0x2747('0x34')]({},_0x1dd3ea,_0x4ced69[_0x2747('0x37')]);var _0x47fd34={'where':_0x1dd3ea[_0x2747('0x31')]};return db['SquareOdbc'][_0x2747('0x16')](_0x47fd34)[_0x2747('0x1b')](function(_0x1c126a){_0x47df11['count']=_0x1c126a;if(_0x4ced69[_0x2747('0x27')]['includeAll']){_0x1dd3ea[_0x2747('0x38')]=[{'all':!![]}];}return db[_0x2747('0x22')][_0x2747('0x39')](_0x1dd3ea);})[_0x2747('0x1b')](function(_0x5f2d03){_0x47df11[_0x2747('0x3a')]=_0x5f2d03;return _0x47df11;})['then'](respondWithFilteredResult(_0x1fe1cf,_0x1dd3ea))[_0x2747('0x3b')](handleError(_0x1fe1cf,null));};exports[_0x2747('0x3c')]=function(_0x44c990,_0x5dd8b3){var _0x2fcbe1={'raw':!![],'where':{'id':_0x44c990[_0x2747('0x3d')]['id']}},_0x44bde6={};_0x44bde6['model']=_[_0x2747('0x3e')](db['SquareOdbc'][_0x2747('0x3f')]);_0x44bde6[_0x2747('0x27')]=_[_0x2747('0x3e')](_0x44c990[_0x2747('0x27')]);_0x44bde6['filters']=_[_0x2747('0x29')](_0x44bde6[_0x2747('0x26')],_0x44bde6[_0x2747('0x27')]);_0x2fcbe1['attributes']=_[_0x2747('0x29')](_0x44bde6['model'],qs[_0x2747('0x2b')](_0x44c990['query']['fields']));_0x2fcbe1['attributes']=_0x2fcbe1['attributes'][_0x2747('0x2c')]?_0x2fcbe1[_0x2747('0x2a')]:_0x44bde6[_0x2747('0x26')];if(_0x44c990['query'][_0x2747('0x40')]){_0x2fcbe1[_0x2747('0x38')]=[{'all':!![]}];}_0x2fcbe1=_['merge']({},_0x2fcbe1,_0x44c990[_0x2747('0x37')]);return db[_0x2747('0x22')][_0x2747('0x41')](_0x2fcbe1)['then'](handleEntityNotFound(_0x5dd8b3,null))[_0x2747('0x1b')](respondWithResult(_0x5dd8b3,null))[_0x2747('0x3b')](handleError(_0x5dd8b3,null));};exports[_0x2747('0x42')]=function(_0x3567c4,_0x4269fc){return db[_0x2747('0x22')]['create'](_0x3567c4[_0x2747('0x43')],{})[_0x2747('0x1b')](function(_0x46adbd){var _0x27ce74=_0x3567c4['user'][_0x2747('0x1d')]({'plain':!![]});if(!_0x27ce74)throw new Error(_0x2747('0x44'));if(_0x27ce74[_0x2747('0x45')]===_0x2747('0x46')){var _0x72c2b9=_0x46adbd[_0x2747('0x1d')]({'plain':!![]});var _0x4f76c6=_0x2747('0x1e');return db[_0x2747('0x47')][_0x2747('0x41')]({'where':{'name':_0x4f76c6,'userProfileId':_0x27ce74['userProfileId']},'raw':!![]})[_0x2747('0x1b')](function(_0x1a1423){if(_0x1a1423&&_0x1a1423['autoAssociation']===0x0){return db[_0x2747('0x48')][_0x2747('0x42')]({'name':_0x72c2b9[_0x2747('0x21')],'resourceId':_0x72c2b9['id'],'type':_0x1a1423[_0x2747('0x21')],'sectionId':_0x1a1423['id']},{})[_0x2747('0x1b')](function(){return _0x46adbd;});}else{return _0x46adbd;}})[_0x2747('0x3b')](function(_0x3645f7){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3645f7);throw _0x3645f7;});}return _0x46adbd;})[_0x2747('0x1b')](respondWithResult(_0x4269fc,0xc9))[_0x2747('0x3b')](handleError(_0x4269fc,null));};exports[_0x2747('0x49')]=function(_0x417fea,_0x16cef9){if(_0x417fea[_0x2747('0x43')]['id']){delete _0x417fea[_0x2747('0x43')]['id'];}return db[_0x2747('0x22')][_0x2747('0x41')]({'where':{'id':_0x417fea[_0x2747('0x3d')]['id']}})['then'](handleEntityNotFound(_0x16cef9,null))[_0x2747('0x1b')](saveUpdates(_0x417fea[_0x2747('0x43')],null))[_0x2747('0x1b')](respondWithResult(_0x16cef9,null))[_0x2747('0x3b')](handleError(_0x16cef9,null));};exports[_0x2747('0x1c')]=function(_0x38317b,_0x3d43da){return db['SquareOdbc']['find']({'where':{'id':_0x38317b[_0x2747('0x3d')]['id']}})[_0x2747('0x1b')](handleEntityNotFound(_0x3d43da,null))[_0x2747('0x1b')](removeEntity(_0x3d43da,null))[_0x2747('0x3b')](handleError(_0x3d43da,null));};exports[_0x2747('0x4a')]=function(_0xb06ff0,_0x46b06e,_0x495f48){var _0x313b79;return db[_0x2747('0x22')][_0x2747('0x41')]({'where':{'id':_0xb06ff0[_0x2747('0x3d')]['id']},'attributes':['id',_0x2747('0x4b')]})[_0x2747('0x1b')](handleEntityNotFound(_0x46b06e,null))['then'](function(_0x384159){if(_0x384159){var _0x3889db=require(_0x2747('0x4c'))();_0x3889db['openSync'](_0x384159[_0x2747('0x4b')]);_0x3889db['closeSync']();return _0x384159;}})[_0x2747('0x1b')](respondWithResult(_0x46b06e,null))[_0x2747('0x3b')](handleError(_0x46b06e,null));};