e82c4c57aae650c6cbff694fb64b70ca33fdcb56
[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 _0xf6ff=['options','includeAll','include','findAll','rows','catch','show','params','filters','find','create','body','role','user','userProfileId','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','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','json','undefined','limit','count','offset','apply','reject','save','update','then','destroy','get','ODBC','UserProfileResource','error','send','index','map','SquareOdbc','rawAttributes','fieldName','type','key','model','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','where','VIRTUAL','merge'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xf6ff,0x6d));var _0xff6f=function(_0x16daf1,_0x3097b0){_0x16daf1=_0x16daf1-0x0;var _0x81e50a=_0xf6ff[_0x16daf1];return _0x81e50a;};'use strict';var emlformat=require(_0xff6f('0x0'));var rimraf=require(_0xff6f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xff6f('0x2'));var rp=require(_0xff6f('0x3'));var moment=require(_0xff6f('0x4'));var BPromise=require(_0xff6f('0x5'));var Mustache=require(_0xff6f('0x6'));var util=require(_0xff6f('0x7'));var path=require('path');var sox=require(_0xff6f('0x8'));var csv=require(_0xff6f('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xff6f('0xa'));var _=require(_0xff6f('0xb'));var squel=require(_0xff6f('0xc'));var crypto=require(_0xff6f('0xd'));var jsforce=require(_0xff6f('0xe'));var deskjs=require(_0xff6f('0xf'));var toCsv=require(_0xff6f('0x9'));var querystring=require(_0xff6f('0x10'));var Papa=require(_0xff6f('0x11'));var Redis=require(_0xff6f('0x12'));var authService=require(_0xff6f('0x13'));var qs=require(_0xff6f('0x14'));var as=require(_0xff6f('0x15'));var hardwareService=require(_0xff6f('0x16'));var logger=require(_0xff6f('0x17'))(_0xff6f('0x18'));var utils=require('../../config/utils');var config=require(_0xff6f('0x19'));var licenseUtil=require(_0xff6f('0x1a'));var db=require(_0xff6f('0x1b'))['db'];function respondWithStatusCode(_0x3f50e1,_0x20b9e3){_0x20b9e3=_0x20b9e3||0xcc;return function(_0x1f23b6){if(_0x1f23b6){return _0x3f50e1[_0xff6f('0x1c')](_0x20b9e3);}return _0x3f50e1[_0xff6f('0x1d')](_0x20b9e3)[_0xff6f('0x1e')]();};}function respondWithResult(_0x20fb9b,_0x2422b3){_0x2422b3=_0x2422b3||0xc8;return function(_0x1ecbcd){if(_0x1ecbcd){return _0x20fb9b['status'](_0x2422b3)[_0xff6f('0x1f')](_0x1ecbcd);}};}function respondWithFilteredResult(_0x33d948,_0x22fc09){return function(_0x3a3acc){if(_0x3a3acc){var _0x4a395e=typeof _0x22fc09['offset']===_0xff6f('0x20')&&typeof _0x22fc09[_0xff6f('0x21')]==='undefined';var _0x33ccaf=_0x3a3acc[_0xff6f('0x22')];var _0x40ca64=_0x4a395e?0x0:_0x22fc09[_0xff6f('0x23')];var _0x2a60d5=_0x4a395e?_0x3a3acc[_0xff6f('0x22')]:_0x22fc09['offset']+_0x22fc09[_0xff6f('0x21')];var _0x421c85;if(_0x2a60d5>=_0x33ccaf){_0x2a60d5=_0x33ccaf;_0x421c85=0xc8;}else{_0x421c85=0xce;}_0x33d948[_0xff6f('0x1d')](_0x421c85);return _0x33d948['set']('Content-Range',_0x40ca64+'-'+_0x2a60d5+'/'+_0x33ccaf)[_0xff6f('0x1f')](_0x3a3acc);}return null;};}function patchUpdates(_0x87b22){return function(_0x2cf7d2){try{jsonpatch[_0xff6f('0x24')](_0x2cf7d2,_0x87b22,!![]);}catch(_0x547f9f){return BPromise[_0xff6f('0x25')](_0x547f9f);}return _0x2cf7d2[_0xff6f('0x26')]();};}function saveUpdates(_0x202bc4,_0x684c96){return function(_0x59efd6){if(_0x59efd6){return _0x59efd6[_0xff6f('0x27')](_0x202bc4)[_0xff6f('0x28')](function(_0x33b664){return _0x33b664;});}return null;};}function removeEntity(_0x5d5e31,_0x294173){return function(_0x497fd7){if(_0x497fd7){return _0x497fd7[_0xff6f('0x29')]()[_0xff6f('0x28')](function(){var _0x3e666d=_0x497fd7[_0xff6f('0x2a')]({'plain':!![]});var _0x38f97c=_0xff6f('0x2b');return db[_0xff6f('0x2c')][_0xff6f('0x29')]({'where':{'type':_0x38f97c,'resourceId':_0x3e666d['id']}})[_0xff6f('0x28')](function(){return _0x497fd7;});})[_0xff6f('0x28')](function(){_0x5d5e31[_0xff6f('0x1d')](0xcc)[_0xff6f('0x1e')]();});}};}function handleEntityNotFound(_0x2128cc,_0x321884){return function(_0x55f721){if(!_0x55f721){_0x2128cc[_0xff6f('0x1c')](0x194);}return _0x55f721;};}function handleError(_0x360cf3,_0x2ee4ff){_0x2ee4ff=_0x2ee4ff||0x1f4;return function(_0x2eb56e){logger[_0xff6f('0x2d')](_0x2eb56e['stack']);if(_0x2eb56e['name']){delete _0x2eb56e['name'];}_0x360cf3[_0xff6f('0x1d')](_0x2ee4ff)[_0xff6f('0x2e')](_0x2eb56e);};}exports[_0xff6f('0x2f')]=function(_0xaa709b,_0x4b15b1){var _0x31f8a7={},_0x38de93={},_0x48ff9e={'count':0x0,'rows':[]};var _0x1a9eb9=_[_0xff6f('0x30')](db[_0xff6f('0x31')][_0xff6f('0x32')],function(_0x194b39){return{'name':_0x194b39[_0xff6f('0x33')],'type':_0x194b39[_0xff6f('0x34')][_0xff6f('0x35')]};});_0x38de93[_0xff6f('0x36')]=_['map'](_0x1a9eb9,_0xff6f('0x37'));_0x38de93[_0xff6f('0x38')]=_[_0xff6f('0x39')](_0xaa709b[_0xff6f('0x38')]);_0x38de93['filters']=_[_0xff6f('0x3a')](_0x38de93[_0xff6f('0x36')],_0x38de93[_0xff6f('0x38')]);_0x31f8a7[_0xff6f('0x3b')]=_[_0xff6f('0x3a')](_0x38de93['model'],qs[_0xff6f('0x3c')](_0xaa709b['query'][_0xff6f('0x3c')]));_0x31f8a7[_0xff6f('0x3b')]=_0x31f8a7[_0xff6f('0x3b')][_0xff6f('0x3d')]?_0x31f8a7[_0xff6f('0x3b')]:_0x38de93['model'];if(!_0xaa709b[_0xff6f('0x38')][_0xff6f('0x3e')](_0xff6f('0x3f'))){_0x31f8a7[_0xff6f('0x21')]=qs[_0xff6f('0x21')](_0xaa709b[_0xff6f('0x38')][_0xff6f('0x21')]);_0x31f8a7[_0xff6f('0x23')]=qs[_0xff6f('0x23')](_0xaa709b[_0xff6f('0x38')][_0xff6f('0x23')]);}_0x31f8a7['order']=qs[_0xff6f('0x40')](_0xaa709b[_0xff6f('0x38')][_0xff6f('0x40')]);_0x31f8a7['where']=qs['filters'](_['pick'](_0xaa709b['query'],_0x38de93['filters']),_0x1a9eb9);if(_0xaa709b[_0xff6f('0x38')][_0xff6f('0x41')]){_0x31f8a7[_0xff6f('0x42')]=_['merge'](_0x31f8a7[_0xff6f('0x42')],{'$or':_[_0xff6f('0x30')](_0x1a9eb9,function(_0x384ac3){if(_0x384ac3[_0xff6f('0x34')]!==_0xff6f('0x43')){var _0x437f27={};_0x437f27[_0x384ac3[_0xff6f('0x37')]]={'$like':'%'+_0xaa709b[_0xff6f('0x38')]['filter']+'%'};return _0x437f27;}})});}_0x31f8a7=_[_0xff6f('0x44')]({},_0x31f8a7,_0xaa709b[_0xff6f('0x45')]);var _0x483864={'where':_0x31f8a7['where']};return db[_0xff6f('0x31')][_0xff6f('0x22')](_0x483864)[_0xff6f('0x28')](function(_0x354157){_0x48ff9e[_0xff6f('0x22')]=_0x354157;if(_0xaa709b['query'][_0xff6f('0x46')]){_0x31f8a7[_0xff6f('0x47')]=[{'all':!![]}];}return db[_0xff6f('0x31')][_0xff6f('0x48')](_0x31f8a7);})[_0xff6f('0x28')](function(_0x590f41){_0x48ff9e[_0xff6f('0x49')]=_0x590f41;return _0x48ff9e;})[_0xff6f('0x28')](respondWithFilteredResult(_0x4b15b1,_0x31f8a7))[_0xff6f('0x4a')](handleError(_0x4b15b1,null));};exports[_0xff6f('0x4b')]=function(_0x5b4cb8,_0x19825a){var _0x3e169d={'raw':!![],'where':{'id':_0x5b4cb8[_0xff6f('0x4c')]['id']}},_0x7bad8c={};_0x7bad8c[_0xff6f('0x36')]=_['keys'](db['SquareOdbc'][_0xff6f('0x32')]);_0x7bad8c[_0xff6f('0x38')]=_[_0xff6f('0x39')](_0x5b4cb8[_0xff6f('0x38')]);_0x7bad8c[_0xff6f('0x4d')]=_[_0xff6f('0x3a')](_0x7bad8c[_0xff6f('0x36')],_0x7bad8c['query']);_0x3e169d[_0xff6f('0x3b')]=_[_0xff6f('0x3a')](_0x7bad8c[_0xff6f('0x36')],qs['fields'](_0x5b4cb8[_0xff6f('0x38')][_0xff6f('0x3c')]));_0x3e169d[_0xff6f('0x3b')]=_0x3e169d[_0xff6f('0x3b')][_0xff6f('0x3d')]?_0x3e169d[_0xff6f('0x3b')]:_0x7bad8c[_0xff6f('0x36')];if(_0x5b4cb8[_0xff6f('0x38')][_0xff6f('0x46')]){_0x3e169d[_0xff6f('0x47')]=[{'all':!![]}];}_0x3e169d=_[_0xff6f('0x44')]({},_0x3e169d,_0x5b4cb8[_0xff6f('0x45')]);return db[_0xff6f('0x31')][_0xff6f('0x4e')](_0x3e169d)['then'](handleEntityNotFound(_0x19825a,null))[_0xff6f('0x28')](respondWithResult(_0x19825a,null))[_0xff6f('0x4a')](handleError(_0x19825a,null));};exports[_0xff6f('0x4f')]=function(_0x7d1eeb,_0x349af4){return db[_0xff6f('0x31')][_0xff6f('0x4f')](_0x7d1eeb[_0xff6f('0x50')],{})[_0xff6f('0x28')](function(_0x49cc54){var _0x4a8eac=_0x7d1eeb['user']['get']({'plain':!![]});if(!_0x4a8eac)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4a8eac[_0xff6f('0x51')]===_0xff6f('0x52')){var _0x305c3d=_0x49cc54[_0xff6f('0x2a')]({'plain':!![]});var _0x1c8acd=_0xff6f('0x2b');return db['UserProfileSection'][_0xff6f('0x4e')]({'where':{'name':_0x1c8acd,'userProfileId':_0x4a8eac[_0xff6f('0x53')]},'raw':!![]})[_0xff6f('0x28')](function(_0x4f7cc0){if(_0x4f7cc0&&_0x4f7cc0['autoAssociation']===0x0){return db[_0xff6f('0x2c')][_0xff6f('0x4f')]({'name':_0x305c3d[_0xff6f('0x37')],'resourceId':_0x305c3d['id'],'type':_0x4f7cc0[_0xff6f('0x37')],'sectionId':_0x4f7cc0['id']},{})[_0xff6f('0x28')](function(){return _0x49cc54;});}else{return _0x49cc54;}})['catch'](function(_0x15657b){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x15657b);throw _0x15657b;});}return _0x49cc54;})[_0xff6f('0x28')](respondWithResult(_0x349af4,0xc9))[_0xff6f('0x4a')](handleError(_0x349af4,null));};exports['update']=function(_0x40b5c5,_0x59763f){if(_0x40b5c5[_0xff6f('0x50')]['id']){delete _0x40b5c5[_0xff6f('0x50')]['id'];}return db[_0xff6f('0x31')]['find']({'where':{'id':_0x40b5c5['params']['id']}})['then'](handleEntityNotFound(_0x59763f,null))['then'](saveUpdates(_0x40b5c5[_0xff6f('0x50')],null))[_0xff6f('0x28')](respondWithResult(_0x59763f,null))['catch'](handleError(_0x59763f,null));};exports['destroy']=function(_0x489ef0,_0x48da63){return db['SquareOdbc']['find']({'where':{'id':_0x489ef0[_0xff6f('0x4c')]['id']}})['then'](handleEntityNotFound(_0x48da63,null))[_0xff6f('0x28')](removeEntity(_0x48da63,null))[_0xff6f('0x4a')](handleError(_0x48da63,null));};exports[_0xff6f('0x54')]=function(_0x1367e1,_0x41cfdd,_0x2893d6){var _0x45f860;return db['SquareOdbc']['find']({'where':{'id':_0x1367e1[_0xff6f('0x4c')]['id']},'attributes':['id',_0xff6f('0x55')]})[_0xff6f('0x28')](handleEntityNotFound(_0x41cfdd,null))[_0xff6f('0x28')](function(_0x56c41b){if(_0x56c41b){var _0x5421a4=require(_0xff6f('0x56'))();_0x5421a4[_0xff6f('0x57')](_0x56c41b[_0xff6f('0x55')]);_0x5421a4[_0xff6f('0x58')]();return _0x56c41b;}})[_0xff6f('0x28')](respondWithResult(_0x41cfdd,null))[_0xff6f('0x4a')](handleError(_0x41cfdd,null));};