34051f9800129526f15aee553cc6782be43a840c
[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 _0xc5e8=['openSync','closeSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','get','ODBC','UserProfileResource','error','stack','name','index','map','SquareOdbc','rawAttributes','fieldName','type','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','user','role','userProfileId','autoAssociation','body','test','dsn','odbc'];(function(_0x4fc79e,_0x3b1919){var _0x301cba=function(_0x39ed05){while(--_0x39ed05){_0x4fc79e['push'](_0x4fc79e['shift']());}};_0x301cba(++_0x3b1919);}(_0xc5e8,0x1a1));var _0x8c5e=function(_0x406a45,_0x1f2d3f){_0x406a45=_0x406a45-0x0;var _0x224491=_0xc5e8[_0x406a45];return _0x224491;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x8c5e('0x0'));var zipdir=require(_0x8c5e('0x1'));var jsonpatch=require(_0x8c5e('0x2'));var rp=require(_0x8c5e('0x3'));var moment=require(_0x8c5e('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8c5e('0x5'));var util=require(_0x8c5e('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x8c5e('0x7'));var ejs=require(_0x8c5e('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8c5e('0x9'));var crypto=require(_0x8c5e('0xa'));var jsforce=require(_0x8c5e('0xb'));var deskjs=require(_0x8c5e('0xc'));var toCsv=require('to-csv');var querystring=require(_0x8c5e('0xd'));var Papa=require('papaparse');var Redis=require(_0x8c5e('0xe'));var authService=require(_0x8c5e('0xf'));var qs=require(_0x8c5e('0x10'));var as=require(_0x8c5e('0x11'));var hardwareService=require(_0x8c5e('0x12'));var logger=require(_0x8c5e('0x13'))(_0x8c5e('0x14'));var utils=require('../../config/utils');var config=require(_0x8c5e('0x15'));var licenseUtil=require(_0x8c5e('0x16'));var db=require(_0x8c5e('0x17'))['db'];function respondWithStatusCode(_0x5d8d30,_0x5ac547){_0x5ac547=_0x5ac547||0xcc;return function(_0x2614e7){if(_0x2614e7){return _0x5d8d30[_0x8c5e('0x18')](_0x5ac547);}return _0x5d8d30[_0x8c5e('0x19')](_0x5ac547)[_0x8c5e('0x1a')]();};}function respondWithResult(_0x56d2bb,_0xd67408){_0xd67408=_0xd67408||0xc8;return function(_0x5b2a74){if(_0x5b2a74){return _0x56d2bb[_0x8c5e('0x19')](_0xd67408)['json'](_0x5b2a74);}};}function respondWithFilteredResult(_0x717d61,_0x59f0da){return function(_0x4c2c67){if(_0x4c2c67){var _0x2ac316=_0x4c2c67[_0x8c5e('0x1b')],_0x2be0cb=_0x59f0da['offset'],_0x387666=_0x59f0da[_0x8c5e('0x1c')]+_0x59f0da[_0x8c5e('0x1d')],_0x510cf5;if(_0x387666>=_0x2ac316){_0x387666=_0x2ac316;_0x510cf5=0xc8;}else{_0x510cf5=0xce;}_0x717d61[_0x8c5e('0x19')](_0x510cf5);return _0x717d61['set'](_0x8c5e('0x1e'),_0x2be0cb+'-'+_0x387666+'/'+_0x2ac316)['json'](_0x4c2c67);}return null;};}function patchUpdates(_0x54a0c4){return function(_0x2c23f7){try{jsonpatch[_0x8c5e('0x1f')](_0x2c23f7,_0x54a0c4,!![]);}catch(_0x404149){return BPromise[_0x8c5e('0x20')](_0x404149);}return _0x2c23f7[_0x8c5e('0x21')]();};}function saveUpdates(_0x12cf64,_0x3e636c){return function(_0x443e13){if(_0x443e13){return _0x443e13[_0x8c5e('0x22')](_0x12cf64)[_0x8c5e('0x23')](function(_0x492e54){return _0x492e54;});}return null;};}function removeEntity(_0x168653,_0x47d2ba){return function(_0x50195a){if(_0x50195a){return _0x50195a[_0x8c5e('0x24')]()[_0x8c5e('0x23')](function(){var _0x402e72=_0x50195a[_0x8c5e('0x25')]({'plain':!![]});var _0x1e536f=_0x8c5e('0x26');return db[_0x8c5e('0x27')][_0x8c5e('0x24')]({'where':{'type':_0x1e536f,'resourceId':_0x402e72['id']}})[_0x8c5e('0x23')](function(){return _0x50195a;});})['then'](function(){_0x168653[_0x8c5e('0x19')](0xcc)[_0x8c5e('0x1a')]();});}};}function handleEntityNotFound(_0x19a63e,_0x47e522){return function(_0x2ed446){if(!_0x2ed446){_0x19a63e[_0x8c5e('0x18')](0x194);}return _0x2ed446;};}function handleError(_0x47c46b,_0xf62d88){_0xf62d88=_0xf62d88||0x1f4;return function(_0x4aed6d){logger[_0x8c5e('0x28')](_0x4aed6d[_0x8c5e('0x29')]);if(_0x4aed6d['name']){delete _0x4aed6d[_0x8c5e('0x2a')];}_0x47c46b[_0x8c5e('0x19')](_0xf62d88)['send'](_0x4aed6d);};}exports[_0x8c5e('0x2b')]=function(_0x55a38b,_0x50c56e){var _0x1f506f={},_0x2d551f={},_0x34d5a2={'count':0x0,'rows':[]};var _0x47781f=_[_0x8c5e('0x2c')](db[_0x8c5e('0x2d')][_0x8c5e('0x2e')],function(_0x1440c7){return{'name':_0x1440c7[_0x8c5e('0x2f')],'type':_0x1440c7[_0x8c5e('0x30')]['key']};});_0x2d551f[_0x8c5e('0x31')]=_[_0x8c5e('0x2c')](_0x47781f,_0x8c5e('0x2a'));_0x2d551f['query']=_['keys'](_0x55a38b[_0x8c5e('0x32')]);_0x2d551f[_0x8c5e('0x33')]=_[_0x8c5e('0x34')](_0x2d551f[_0x8c5e('0x31')],_0x2d551f[_0x8c5e('0x32')]);_0x1f506f['attributes']=_[_0x8c5e('0x34')](_0x2d551f['model'],qs['fields'](_0x55a38b[_0x8c5e('0x32')][_0x8c5e('0x35')]));_0x1f506f['attributes']=_0x1f506f[_0x8c5e('0x36')][_0x8c5e('0x37')]?_0x1f506f[_0x8c5e('0x36')]:_0x2d551f[_0x8c5e('0x31')];if(!_0x55a38b['query'][_0x8c5e('0x38')](_0x8c5e('0x39'))){_0x1f506f[_0x8c5e('0x1d')]=qs['limit'](_0x55a38b['query'][_0x8c5e('0x1d')]);_0x1f506f['offset']=qs[_0x8c5e('0x1c')](_0x55a38b['query'][_0x8c5e('0x1c')]);}_0x1f506f['order']=qs[_0x8c5e('0x3a')](_0x55a38b['query'][_0x8c5e('0x3a')]);_0x1f506f[_0x8c5e('0x3b')]=qs['filters'](_['pick'](_0x55a38b[_0x8c5e('0x32')],_0x2d551f[_0x8c5e('0x33')]),_0x47781f);if(_0x55a38b['query']['filter']){_0x1f506f[_0x8c5e('0x3b')]=_[_0x8c5e('0x3c')](_0x1f506f[_0x8c5e('0x3b')],{'$or':_[_0x8c5e('0x2c')](_0x47781f,function(_0x13607c){if(_0x13607c['type']!==_0x8c5e('0x3d')){var _0x1ab899={};_0x1ab899[_0x13607c[_0x8c5e('0x2a')]]={'$like':'%'+_0x55a38b[_0x8c5e('0x32')]['filter']+'%'};return _0x1ab899;}})});}_0x1f506f=_[_0x8c5e('0x3c')]({},_0x1f506f,_0x55a38b[_0x8c5e('0x3e')]);var _0x3950ab={'where':_0x1f506f['where']};return db['SquareOdbc'][_0x8c5e('0x1b')](_0x3950ab)[_0x8c5e('0x23')](function(_0x8f254e){_0x34d5a2[_0x8c5e('0x1b')]=_0x8f254e;if(_0x55a38b['query'][_0x8c5e('0x3f')]){_0x1f506f[_0x8c5e('0x40')]=[{'all':!![]}];}return db[_0x8c5e('0x2d')][_0x8c5e('0x41')](_0x1f506f);})[_0x8c5e('0x23')](function(_0x391c82){_0x34d5a2[_0x8c5e('0x42')]=_0x391c82;return _0x34d5a2;})[_0x8c5e('0x23')](respondWithFilteredResult(_0x50c56e,_0x1f506f))[_0x8c5e('0x43')](handleError(_0x50c56e,null));};exports[_0x8c5e('0x44')]=function(_0x3c5870,_0x362883){var _0x37ab09={'raw':!![],'where':{'id':_0x3c5870[_0x8c5e('0x45')]['id']}},_0x49b7d1={};_0x49b7d1[_0x8c5e('0x31')]=_['keys'](db[_0x8c5e('0x2d')][_0x8c5e('0x2e')]);_0x49b7d1[_0x8c5e('0x32')]=_[_0x8c5e('0x46')](_0x3c5870['query']);_0x49b7d1['filters']=_[_0x8c5e('0x34')](_0x49b7d1[_0x8c5e('0x31')],_0x49b7d1[_0x8c5e('0x32')]);_0x37ab09[_0x8c5e('0x36')]=_[_0x8c5e('0x34')](_0x49b7d1['model'],qs['fields'](_0x3c5870[_0x8c5e('0x32')]['fields']));_0x37ab09[_0x8c5e('0x36')]=_0x37ab09[_0x8c5e('0x36')][_0x8c5e('0x37')]?_0x37ab09[_0x8c5e('0x36')]:_0x49b7d1[_0x8c5e('0x31')];if(_0x3c5870[_0x8c5e('0x32')][_0x8c5e('0x3f')]){_0x37ab09[_0x8c5e('0x40')]=[{'all':!![]}];}_0x37ab09=_[_0x8c5e('0x3c')]({},_0x37ab09,_0x3c5870[_0x8c5e('0x3e')]);return db['SquareOdbc'][_0x8c5e('0x47')](_0x37ab09)[_0x8c5e('0x23')](handleEntityNotFound(_0x362883,null))[_0x8c5e('0x23')](respondWithResult(_0x362883,null))['catch'](handleError(_0x362883,null));};exports[_0x8c5e('0x48')]=function(_0x4fc317,_0x1b1c88){return db[_0x8c5e('0x2d')]['create'](_0x4fc317['body'],{})['then'](function(_0x33b0fa){var _0x2890bc=_0x4fc317[_0x8c5e('0x49')]['get']({'plain':!![]});if(!_0x2890bc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2890bc[_0x8c5e('0x4a')]==='user'){var _0x30fe1d=_0x33b0fa['get']({'plain':!![]});var _0x6746de=_0x8c5e('0x26');return db['UserProfileSection'][_0x8c5e('0x47')]({'where':{'name':_0x6746de,'userProfileId':_0x2890bc[_0x8c5e('0x4b')]},'raw':!![]})[_0x8c5e('0x23')](function(_0x10785a){if(_0x10785a&&_0x10785a[_0x8c5e('0x4c')]===0x0){return db[_0x8c5e('0x27')][_0x8c5e('0x48')]({'name':_0x30fe1d[_0x8c5e('0x2a')],'resourceId':_0x30fe1d['id'],'type':_0x10785a[_0x8c5e('0x2a')],'sectionId':_0x10785a['id']},{})['then'](function(){return _0x33b0fa;});}else{return _0x33b0fa;}})['catch'](function(_0x59e027){logger[_0x8c5e('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x59e027);throw _0x59e027;});}return _0x33b0fa;})[_0x8c5e('0x23')](respondWithResult(_0x1b1c88,0xc9))[_0x8c5e('0x43')](handleError(_0x1b1c88,null));};exports[_0x8c5e('0x22')]=function(_0x6ae13b,_0x14ff7d){if(_0x6ae13b[_0x8c5e('0x4d')]['id']){delete _0x6ae13b['body']['id'];}return db[_0x8c5e('0x2d')][_0x8c5e('0x47')]({'where':{'id':_0x6ae13b['params']['id']}})[_0x8c5e('0x23')](handleEntityNotFound(_0x14ff7d,null))[_0x8c5e('0x23')](saveUpdates(_0x6ae13b[_0x8c5e('0x4d')],null))[_0x8c5e('0x23')](respondWithResult(_0x14ff7d,null))[_0x8c5e('0x43')](handleError(_0x14ff7d,null));};exports['destroy']=function(_0x4e344a,_0x1865a2){return db[_0x8c5e('0x2d')][_0x8c5e('0x47')]({'where':{'id':_0x4e344a[_0x8c5e('0x45')]['id']}})[_0x8c5e('0x23')](handleEntityNotFound(_0x1865a2,null))['then'](removeEntity(_0x1865a2,null))['catch'](handleError(_0x1865a2,null));};exports[_0x8c5e('0x4e')]=function(_0x4d5d21,_0xfdb62f,_0x34ab71){var _0x29ea37;return db[_0x8c5e('0x2d')][_0x8c5e('0x47')]({'where':{'id':_0x4d5d21['params']['id']},'attributes':['id',_0x8c5e('0x4f')]})[_0x8c5e('0x23')](handleEntityNotFound(_0xfdb62f,null))[_0x8c5e('0x23')](function(_0x22efa2){if(_0x22efa2){var _0x525ad4=require(_0x8c5e('0x50'))();_0x525ad4[_0x8c5e('0x51')](_0x22efa2[_0x8c5e('0x4f')]);_0x525ad4[_0x8c5e('0x52')]();return _0x22efa2;}})[_0x8c5e('0x23')](respondWithResult(_0xfdb62f,null))[_0x8c5e('0x43')](handleError(_0xfdb62f,null));};