Built motion from commit 85328c08.|2.5.50
[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 _0x3066=['dsn','openSync','closeSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','squel','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','update','then','get','ODBC','destroy','error','name','send','index','map','SquareOdbc','rawAttributes','fieldName','type','key','keys','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','test'];(function(_0x3070dc,_0x40cf11){var _0x431489=function(_0x49bc2a){while(--_0x49bc2a){_0x3070dc['push'](_0x3070dc['shift']());}};_0x431489(++_0x40cf11);}(_0x3066,0x1ac));var _0x6306=function(_0x5c58de,_0x2e3506){_0x5c58de=_0x5c58de-0x0;var _0x3b9b0d=_0x3066[_0x5c58de];return _0x3b9b0d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6306('0x0'));var zipdir=require(_0x6306('0x1'));var jsonpatch=require(_0x6306('0x2'));var rp=require(_0x6306('0x3'));var moment=require(_0x6306('0x4'));var BPromise=require(_0x6306('0x5'));var Mustache=require('mustache');var util=require(_0x6306('0x6'));var path=require(_0x6306('0x7'));var sox=require(_0x6306('0x8'));var csv=require('to-csv');var ejs=require(_0x6306('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6306('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x6306('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x6306('0xc'));var Redis=require('ioredis');var authService=require(_0x6306('0xd'));var qs=require(_0x6306('0xe'));var as=require(_0x6306('0xf'));var hardwareService=require(_0x6306('0x10'));var logger=require(_0x6306('0x11'))(_0x6306('0x12'));var utils=require(_0x6306('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x6306('0x14'));var db=require(_0x6306('0x15'))['db'];function respondWithStatusCode(_0x1eb18e,_0x2602b7){_0x2602b7=_0x2602b7||0xcc;return function(_0xb1c74e){if(_0xb1c74e){return _0x1eb18e[_0x6306('0x16')](_0x2602b7);}return _0x1eb18e[_0x6306('0x17')](_0x2602b7)[_0x6306('0x18')]();};}function respondWithResult(_0x7d76f7,_0x66b632){_0x66b632=_0x66b632||0xc8;return function(_0x2aedc7){if(_0x2aedc7){return _0x7d76f7[_0x6306('0x17')](_0x66b632)[_0x6306('0x19')](_0x2aedc7);}};}function respondWithFilteredResult(_0x5a8187,_0x457af6){return function(_0x17b2de){if(_0x17b2de){var _0x2783f8=typeof _0x457af6[_0x6306('0x1a')]==='undefined'&&typeof _0x457af6[_0x6306('0x1b')]===_0x6306('0x1c');var _0x46ab8c=_0x17b2de[_0x6306('0x1d')];var _0x467660=_0x2783f8?0x0:_0x457af6['offset'];var _0x5bda97=_0x2783f8?_0x17b2de[_0x6306('0x1d')]:_0x457af6['offset']+_0x457af6[_0x6306('0x1b')];var _0x45bba3;if(_0x5bda97>=_0x46ab8c){_0x5bda97=_0x46ab8c;_0x45bba3=0xc8;}else{_0x45bba3=0xce;}_0x5a8187[_0x6306('0x17')](_0x45bba3);return _0x5a8187[_0x6306('0x1e')]('Content-Range',_0x467660+'-'+_0x5bda97+'/'+_0x46ab8c)[_0x6306('0x19')](_0x17b2de);}return null;};}function patchUpdates(_0x39b2ed){return function(_0x2cbaeb){try{jsonpatch['apply'](_0x2cbaeb,_0x39b2ed,!![]);}catch(_0x287106){return BPromise['reject'](_0x287106);}return _0x2cbaeb['save']();};}function saveUpdates(_0x4943bb,_0x18f4cc){return function(_0x21bb9e){if(_0x21bb9e){return _0x21bb9e[_0x6306('0x1f')](_0x4943bb)[_0x6306('0x20')](function(_0x4eeaa2){return _0x4eeaa2;});}return null;};}function removeEntity(_0x45dcc6,_0x3f2ddf){return function(_0x1d8dc3){if(_0x1d8dc3){return _0x1d8dc3['destroy']()[_0x6306('0x20')](function(){var _0x53c597=_0x1d8dc3[_0x6306('0x21')]({'plain':!![]});var _0x4ab127=_0x6306('0x22');return db['UserProfileResource'][_0x6306('0x23')]({'where':{'type':_0x4ab127,'resourceId':_0x53c597['id']}})[_0x6306('0x20')](function(){return _0x1d8dc3;});})[_0x6306('0x20')](function(){_0x45dcc6[_0x6306('0x17')](0xcc)[_0x6306('0x18')]();});}};}function handleEntityNotFound(_0x2041c2,_0x28b446){return function(_0x3c3b90){if(!_0x3c3b90){_0x2041c2[_0x6306('0x16')](0x194);}return _0x3c3b90;};}function handleError(_0x4f7a82,_0x36314b){_0x36314b=_0x36314b||0x1f4;return function(_0x5d9c13){logger[_0x6306('0x24')](_0x5d9c13['stack']);if(_0x5d9c13[_0x6306('0x25')]){delete _0x5d9c13['name'];}_0x4f7a82[_0x6306('0x17')](_0x36314b)[_0x6306('0x26')](_0x5d9c13);};}exports[_0x6306('0x27')]=function(_0x16ef30,_0x12c71a){var _0xd4d13={},_0x2b84b1={},_0x5d9093={'count':0x0,'rows':[]};var _0x433b32=_[_0x6306('0x28')](db[_0x6306('0x29')][_0x6306('0x2a')],function(_0x5d6850){return{'name':_0x5d6850[_0x6306('0x2b')],'type':_0x5d6850[_0x6306('0x2c')][_0x6306('0x2d')]};});_0x2b84b1['model']=_[_0x6306('0x28')](_0x433b32,_0x6306('0x25'));_0x2b84b1['query']=_[_0x6306('0x2e')](_0x16ef30[_0x6306('0x2f')]);_0x2b84b1[_0x6306('0x30')]=_['intersection'](_0x2b84b1[_0x6306('0x31')],_0x2b84b1[_0x6306('0x2f')]);_0xd4d13[_0x6306('0x32')]=_[_0x6306('0x33')](_0x2b84b1[_0x6306('0x31')],qs[_0x6306('0x34')](_0x16ef30['query']['fields']));_0xd4d13[_0x6306('0x32')]=_0xd4d13['attributes'][_0x6306('0x35')]?_0xd4d13[_0x6306('0x32')]:_0x2b84b1[_0x6306('0x31')];if(!_0x16ef30[_0x6306('0x2f')][_0x6306('0x36')](_0x6306('0x37'))){_0xd4d13[_0x6306('0x1b')]=qs[_0x6306('0x1b')](_0x16ef30[_0x6306('0x2f')][_0x6306('0x1b')]);_0xd4d13['offset']=qs[_0x6306('0x1a')](_0x16ef30[_0x6306('0x2f')][_0x6306('0x1a')]);}_0xd4d13[_0x6306('0x38')]=qs[_0x6306('0x39')](_0x16ef30[_0x6306('0x2f')]['sort']);_0xd4d13[_0x6306('0x3a')]=qs[_0x6306('0x30')](_[_0x6306('0x3b')](_0x16ef30['query'],_0x2b84b1[_0x6306('0x30')]),_0x433b32);if(_0x16ef30['query'][_0x6306('0x3c')]){_0xd4d13[_0x6306('0x3a')]=_[_0x6306('0x3d')](_0xd4d13[_0x6306('0x3a')],{'$or':_[_0x6306('0x28')](_0x433b32,function(_0x17fe3b){if(_0x17fe3b[_0x6306('0x2c')]!==_0x6306('0x3e')){var _0x10e6ef={};_0x10e6ef[_0x17fe3b[_0x6306('0x25')]]={'$like':'%'+_0x16ef30[_0x6306('0x2f')][_0x6306('0x3c')]+'%'};return _0x10e6ef;}})});}_0xd4d13=_[_0x6306('0x3d')]({},_0xd4d13,_0x16ef30[_0x6306('0x3f')]);var _0xbb21f={'where':_0xd4d13[_0x6306('0x3a')]};return db[_0x6306('0x29')][_0x6306('0x1d')](_0xbb21f)[_0x6306('0x20')](function(_0x296739){_0x5d9093['count']=_0x296739;if(_0x16ef30[_0x6306('0x2f')][_0x6306('0x40')]){_0xd4d13[_0x6306('0x41')]=[{'all':!![]}];}return db[_0x6306('0x29')][_0x6306('0x42')](_0xd4d13);})['then'](function(_0x5d4b1b){_0x5d9093['rows']=_0x5d4b1b;return _0x5d9093;})[_0x6306('0x20')](respondWithFilteredResult(_0x12c71a,_0xd4d13))[_0x6306('0x43')](handleError(_0x12c71a,null));};exports[_0x6306('0x44')]=function(_0x11ddb1,_0x5b7c1f){var _0x51e913={'raw':!![],'where':{'id':_0x11ddb1['params']['id']}},_0x1321a9={};_0x1321a9[_0x6306('0x31')]=_[_0x6306('0x2e')](db[_0x6306('0x29')]['rawAttributes']);_0x1321a9['query']=_[_0x6306('0x2e')](_0x11ddb1[_0x6306('0x2f')]);_0x1321a9['filters']=_[_0x6306('0x33')](_0x1321a9[_0x6306('0x31')],_0x1321a9['query']);_0x51e913[_0x6306('0x32')]=_[_0x6306('0x33')](_0x1321a9[_0x6306('0x31')],qs['fields'](_0x11ddb1[_0x6306('0x2f')]['fields']));_0x51e913[_0x6306('0x32')]=_0x51e913[_0x6306('0x32')][_0x6306('0x35')]?_0x51e913[_0x6306('0x32')]:_0x1321a9['model'];if(_0x11ddb1[_0x6306('0x2f')][_0x6306('0x40')]){_0x51e913[_0x6306('0x41')]=[{'all':!![]}];}_0x51e913=_[_0x6306('0x3d')]({},_0x51e913,_0x11ddb1[_0x6306('0x3f')]);return db[_0x6306('0x29')][_0x6306('0x45')](_0x51e913)[_0x6306('0x20')](handleEntityNotFound(_0x5b7c1f,null))[_0x6306('0x20')](respondWithResult(_0x5b7c1f,null))[_0x6306('0x43')](handleError(_0x5b7c1f,null));};exports[_0x6306('0x46')]=function(_0x5a87c1,_0x46a73e){return db[_0x6306('0x29')][_0x6306('0x46')](_0x5a87c1[_0x6306('0x47')],{})['then'](function(_0x5de455){var _0x56b2d0=_0x5a87c1[_0x6306('0x48')][_0x6306('0x21')]({'plain':!![]});if(!_0x56b2d0)throw new Error(_0x6306('0x49'));if(_0x56b2d0[_0x6306('0x4a')]==='user'){var _0x1e027e=_0x5de455[_0x6306('0x21')]({'plain':!![]});var _0x45cb25='ODBC';return db[_0x6306('0x4b')][_0x6306('0x45')]({'where':{'name':_0x45cb25,'userProfileId':_0x56b2d0[_0x6306('0x4c')]},'raw':!![]})[_0x6306('0x20')](function(_0x4e9a8f){if(_0x4e9a8f&&_0x4e9a8f[_0x6306('0x4d')]===0x0){return db[_0x6306('0x4e')][_0x6306('0x46')]({'name':_0x1e027e[_0x6306('0x25')],'resourceId':_0x1e027e['id'],'type':_0x4e9a8f[_0x6306('0x25')],'sectionId':_0x4e9a8f['id']},{})[_0x6306('0x20')](function(){return _0x5de455;});}else{return _0x5de455;}})[_0x6306('0x43')](function(_0x5ba098){logger[_0x6306('0x24')](_0x6306('0x4f'),_0x5ba098);throw _0x5ba098;});}return _0x5de455;})['then'](respondWithResult(_0x46a73e,0xc9))['catch'](handleError(_0x46a73e,null));};exports[_0x6306('0x1f')]=function(_0x4107ff,_0x50ca7b){if(_0x4107ff[_0x6306('0x47')]['id']){delete _0x4107ff[_0x6306('0x47')]['id'];}return db[_0x6306('0x29')][_0x6306('0x45')]({'where':{'id':_0x4107ff[_0x6306('0x50')]['id']}})[_0x6306('0x20')](handleEntityNotFound(_0x50ca7b,null))[_0x6306('0x20')](saveUpdates(_0x4107ff['body'],null))[_0x6306('0x20')](respondWithResult(_0x50ca7b,null))[_0x6306('0x43')](handleError(_0x50ca7b,null));};exports[_0x6306('0x23')]=function(_0x340fa6,_0x1206e9){return db['SquareOdbc'][_0x6306('0x45')]({'where':{'id':_0x340fa6[_0x6306('0x50')]['id']}})[_0x6306('0x20')](handleEntityNotFound(_0x1206e9,null))[_0x6306('0x20')](removeEntity(_0x1206e9,null))[_0x6306('0x43')](handleError(_0x1206e9,null));};exports[_0x6306('0x51')]=function(_0x2e6b16,_0x16c37c,_0x2c7ac8){var _0x3dfc81;return db[_0x6306('0x29')][_0x6306('0x45')]({'where':{'id':_0x2e6b16[_0x6306('0x50')]['id']},'attributes':['id',_0x6306('0x52')]})[_0x6306('0x20')](handleEntityNotFound(_0x16c37c,null))[_0x6306('0x20')](function(_0xd483ec){if(_0xd483ec){var _0x1e9015=require('odbc')();_0x1e9015[_0x6306('0x53')](_0xd483ec['dsn']);_0x1e9015[_0x6306('0x54')]();return _0xd483ec;}})[_0x6306('0x20')](respondWithResult(_0x16c37c,null))[_0x6306('0x43')](handleError(_0x16c37c,null));};