Built motion from commit 936e8062.|2.5.33
[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 _0xc9f0=['type','key','map','query','keys','model','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','odbc','closeSync','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','then','destroy','get','ODBC','UserProfileResource','stack','name','SquareOdbc','rawAttributes'];(function(_0x13c8f5,_0xf0fef9){var _0x20448e=function(_0x59976e){while(--_0x59976e){_0x13c8f5['push'](_0x13c8f5['shift']());}};_0x20448e(++_0xf0fef9);}(_0xc9f0,0x79));var _0x0c9f=function(_0x1f28b6,_0xd2d80a){_0x1f28b6=_0x1f28b6-0x0;var _0x349220=_0xc9f0[_0x1f28b6];return _0x349220;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x0c9f('0x0'));var rp=require(_0x0c9f('0x1'));var moment=require(_0x0c9f('0x2'));var BPromise=require(_0x0c9f('0x3'));var Mustache=require(_0x0c9f('0x4'));var util=require(_0x0c9f('0x5'));var path=require(_0x0c9f('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0c9f('0x7'));var fs=require('fs');var fs_extra=require(_0x0c9f('0x8'));var _=require('lodash');var squel=require(_0x0c9f('0x9'));var crypto=require(_0x0c9f('0xa'));var jsforce=require(_0x0c9f('0xb'));var deskjs=require(_0x0c9f('0xc'));var toCsv=require(_0x0c9f('0xd'));var querystring=require(_0x0c9f('0xe'));var Papa=require('papaparse');var Redis=require(_0x0c9f('0xf'));var authService=require(_0x0c9f('0x10'));var qs=require(_0x0c9f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0c9f('0x12'));var logger=require('../../config/logger')(_0x0c9f('0x13'));var utils=require(_0x0c9f('0x14'));var config=require(_0x0c9f('0x15'));var licenseUtil=require(_0x0c9f('0x16'));var db=require(_0x0c9f('0x17'))['db'];function respondWithStatusCode(_0x47e95c,_0x471532){_0x471532=_0x471532||0xcc;return function(_0x850c56){if(_0x850c56){return _0x47e95c[_0x0c9f('0x18')](_0x471532);}return _0x47e95c[_0x0c9f('0x19')](_0x471532)[_0x0c9f('0x1a')]();};}function respondWithResult(_0x4a1b73,_0x230f57){_0x230f57=_0x230f57||0xc8;return function(_0x46924e){if(_0x46924e){return _0x4a1b73['status'](_0x230f57)[_0x0c9f('0x1b')](_0x46924e);}};}function respondWithFilteredResult(_0x4516fe,_0x481f91){return function(_0x380e00){if(_0x380e00){var _0x3d5537=typeof _0x481f91['offset']===_0x0c9f('0x1c')&&typeof _0x481f91[_0x0c9f('0x1d')]===_0x0c9f('0x1c');var _0x202618=_0x380e00[_0x0c9f('0x1e')];var _0x14f680=_0x3d5537?0x0:_0x481f91[_0x0c9f('0x1f')];var _0xdd5185=_0x3d5537?_0x380e00[_0x0c9f('0x1e')]:_0x481f91['offset']+_0x481f91[_0x0c9f('0x1d')];var _0x1d6131;if(_0xdd5185>=_0x202618){_0xdd5185=_0x202618;_0x1d6131=0xc8;}else{_0x1d6131=0xce;}_0x4516fe[_0x0c9f('0x19')](_0x1d6131);return _0x4516fe[_0x0c9f('0x20')](_0x0c9f('0x21'),_0x14f680+'-'+_0xdd5185+'/'+_0x202618)[_0x0c9f('0x1b')](_0x380e00);}return null;};}function patchUpdates(_0x1cb1ee){return function(_0x1c4c1f){try{jsonpatch['apply'](_0x1c4c1f,_0x1cb1ee,!![]);}catch(_0x1fcf4d){return BPromise[_0x0c9f('0x22')](_0x1fcf4d);}return _0x1c4c1f[_0x0c9f('0x23')]();};}function saveUpdates(_0xde1744,_0x5119cd){return function(_0x55e9fc){if(_0x55e9fc){return _0x55e9fc['update'](_0xde1744)[_0x0c9f('0x24')](function(_0x49adaa){return _0x49adaa;});}return null;};}function removeEntity(_0x3738af,_0xa03bbd){return function(_0x30ec43){if(_0x30ec43){return _0x30ec43[_0x0c9f('0x25')]()['then'](function(){var _0x583b3e=_0x30ec43[_0x0c9f('0x26')]({'plain':!![]});var _0x2ee730=_0x0c9f('0x27');return db[_0x0c9f('0x28')][_0x0c9f('0x25')]({'where':{'type':_0x2ee730,'resourceId':_0x583b3e['id']}})[_0x0c9f('0x24')](function(){return _0x30ec43;});})[_0x0c9f('0x24')](function(){_0x3738af[_0x0c9f('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4c9463,_0x2dc72){return function(_0x5f11a2){if(!_0x5f11a2){_0x4c9463[_0x0c9f('0x18')](0x194);}return _0x5f11a2;};}function handleError(_0x325b42,_0x1de0ab){_0x1de0ab=_0x1de0ab||0x1f4;return function(_0x382711){logger['error'](_0x382711[_0x0c9f('0x29')]);if(_0x382711[_0x0c9f('0x2a')]){delete _0x382711['name'];}_0x325b42['status'](_0x1de0ab)['send'](_0x382711);};}exports['index']=function(_0x16cdae,_0x49b924){var _0x44369e={},_0x189481={},_0x4a22c2={'count':0x0,'rows':[]};var _0x4ae933=_['map'](db[_0x0c9f('0x2b')][_0x0c9f('0x2c')],function(_0x44f72d){return{'name':_0x44f72d['fieldName'],'type':_0x44f72d[_0x0c9f('0x2d')][_0x0c9f('0x2e')]};});_0x189481['model']=_[_0x0c9f('0x2f')](_0x4ae933,'name');_0x189481[_0x0c9f('0x30')]=_[_0x0c9f('0x31')](_0x16cdae[_0x0c9f('0x30')]);_0x189481['filters']=_['intersection'](_0x189481[_0x0c9f('0x32')],_0x189481[_0x0c9f('0x30')]);_0x44369e[_0x0c9f('0x33')]=_['intersection'](_0x189481[_0x0c9f('0x32')],qs[_0x0c9f('0x34')](_0x16cdae['query'][_0x0c9f('0x34')]));_0x44369e[_0x0c9f('0x33')]=_0x44369e[_0x0c9f('0x33')][_0x0c9f('0x35')]?_0x44369e[_0x0c9f('0x33')]:_0x189481[_0x0c9f('0x32')];if(!_0x16cdae[_0x0c9f('0x30')][_0x0c9f('0x36')]('nolimit')){_0x44369e[_0x0c9f('0x1d')]=qs[_0x0c9f('0x1d')](_0x16cdae[_0x0c9f('0x30')][_0x0c9f('0x1d')]);_0x44369e['offset']=qs[_0x0c9f('0x1f')](_0x16cdae[_0x0c9f('0x30')][_0x0c9f('0x1f')]);}_0x44369e[_0x0c9f('0x37')]=qs[_0x0c9f('0x38')](_0x16cdae[_0x0c9f('0x30')]['sort']);_0x44369e[_0x0c9f('0x39')]=qs[_0x0c9f('0x3a')](_[_0x0c9f('0x3b')](_0x16cdae[_0x0c9f('0x30')],_0x189481['filters']),_0x4ae933);if(_0x16cdae['query'][_0x0c9f('0x3c')]){_0x44369e[_0x0c9f('0x39')]=_['merge'](_0x44369e[_0x0c9f('0x39')],{'$or':_[_0x0c9f('0x2f')](_0x4ae933,function(_0x2cbd54){if(_0x2cbd54[_0x0c9f('0x2d')]!==_0x0c9f('0x3d')){var _0x5a99c9={};_0x5a99c9[_0x2cbd54['name']]={'$like':'%'+_0x16cdae['query']['filter']+'%'};return _0x5a99c9;}})});}_0x44369e=_[_0x0c9f('0x3e')]({},_0x44369e,_0x16cdae[_0x0c9f('0x3f')]);var _0x308cca={'where':_0x44369e[_0x0c9f('0x39')]};return db['SquareOdbc'][_0x0c9f('0x1e')](_0x308cca)[_0x0c9f('0x24')](function(_0x55e34d){_0x4a22c2[_0x0c9f('0x1e')]=_0x55e34d;if(_0x16cdae[_0x0c9f('0x30')][_0x0c9f('0x40')]){_0x44369e[_0x0c9f('0x41')]=[{'all':!![]}];}return db['SquareOdbc'][_0x0c9f('0x42')](_0x44369e);})['then'](function(_0x150a25){_0x4a22c2[_0x0c9f('0x43')]=_0x150a25;return _0x4a22c2;})[_0x0c9f('0x24')](respondWithFilteredResult(_0x49b924,_0x44369e))[_0x0c9f('0x44')](handleError(_0x49b924,null));};exports[_0x0c9f('0x45')]=function(_0x2b7f0e,_0x44cf99){var _0x4e770b={'raw':!![],'where':{'id':_0x2b7f0e[_0x0c9f('0x46')]['id']}},_0x4d0e72={};_0x4d0e72['model']=_[_0x0c9f('0x31')](db[_0x0c9f('0x2b')][_0x0c9f('0x2c')]);_0x4d0e72[_0x0c9f('0x30')]=_[_0x0c9f('0x31')](_0x2b7f0e[_0x0c9f('0x30')]);_0x4d0e72['filters']=_['intersection'](_0x4d0e72[_0x0c9f('0x32')],_0x4d0e72[_0x0c9f('0x30')]);_0x4e770b[_0x0c9f('0x33')]=_['intersection'](_0x4d0e72[_0x0c9f('0x32')],qs[_0x0c9f('0x34')](_0x2b7f0e[_0x0c9f('0x30')][_0x0c9f('0x34')]));_0x4e770b[_0x0c9f('0x33')]=_0x4e770b[_0x0c9f('0x33')][_0x0c9f('0x35')]?_0x4e770b[_0x0c9f('0x33')]:_0x4d0e72[_0x0c9f('0x32')];if(_0x2b7f0e[_0x0c9f('0x30')][_0x0c9f('0x40')]){_0x4e770b['include']=[{'all':!![]}];}_0x4e770b=_['merge']({},_0x4e770b,_0x2b7f0e[_0x0c9f('0x3f')]);return db['SquareOdbc']['find'](_0x4e770b)[_0x0c9f('0x24')](handleEntityNotFound(_0x44cf99,null))[_0x0c9f('0x24')](respondWithResult(_0x44cf99,null))['catch'](handleError(_0x44cf99,null));};exports['create']=function(_0x2aee8f,_0x191402){return db[_0x0c9f('0x2b')][_0x0c9f('0x47')](_0x2aee8f[_0x0c9f('0x48')],{})[_0x0c9f('0x24')](function(_0xe2e59b){var _0x4d12a2=_0x2aee8f[_0x0c9f('0x49')]['get']({'plain':!![]});if(!_0x4d12a2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4d12a2[_0x0c9f('0x4a')]===_0x0c9f('0x49')){var _0x110c21=_0xe2e59b['get']({'plain':!![]});var _0x15c45d=_0x0c9f('0x27');return db[_0x0c9f('0x4b')]['find']({'where':{'name':_0x15c45d,'userProfileId':_0x4d12a2[_0x0c9f('0x4c')]},'raw':!![]})['then'](function(_0x2c55f9){if(_0x2c55f9&&_0x2c55f9[_0x0c9f('0x4d')]===0x0){return db[_0x0c9f('0x28')][_0x0c9f('0x47')]({'name':_0x110c21[_0x0c9f('0x2a')],'resourceId':_0x110c21['id'],'type':_0x2c55f9[_0x0c9f('0x2a')],'sectionId':_0x2c55f9['id']},{})[_0x0c9f('0x24')](function(){return _0xe2e59b;});}else{return _0xe2e59b;}})[_0x0c9f('0x44')](function(_0x6908a2){logger['error'](_0x0c9f('0x4e'),_0x6908a2);throw _0x6908a2;});}return _0xe2e59b;})[_0x0c9f('0x24')](respondWithResult(_0x191402,0xc9))[_0x0c9f('0x44')](handleError(_0x191402,null));};exports[_0x0c9f('0x4f')]=function(_0x1a0982,_0x4b9248){if(_0x1a0982['body']['id']){delete _0x1a0982[_0x0c9f('0x48')]['id'];}return db[_0x0c9f('0x2b')]['find']({'where':{'id':_0x1a0982[_0x0c9f('0x46')]['id']}})[_0x0c9f('0x24')](handleEntityNotFound(_0x4b9248,null))['then'](saveUpdates(_0x1a0982[_0x0c9f('0x48')],null))['then'](respondWithResult(_0x4b9248,null))[_0x0c9f('0x44')](handleError(_0x4b9248,null));};exports[_0x0c9f('0x25')]=function(_0x5fd357,_0x4cd30a){return db[_0x0c9f('0x2b')]['find']({'where':{'id':_0x5fd357['params']['id']}})[_0x0c9f('0x24')](handleEntityNotFound(_0x4cd30a,null))[_0x0c9f('0x24')](removeEntity(_0x4cd30a,null))['catch'](handleError(_0x4cd30a,null));};exports['test']=function(_0x1dc74e,_0x5d7697,_0x680f17){var _0x37cc24;return db[_0x0c9f('0x2b')][_0x0c9f('0x50')]({'where':{'id':_0x1dc74e[_0x0c9f('0x46')]['id']},'attributes':['id','dsn']})[_0x0c9f('0x24')](handleEntityNotFound(_0x5d7697,null))[_0x0c9f('0x24')](function(_0x47d7b3){if(_0x47d7b3){var _0x3cd8d3=require(_0x0c9f('0x51'))();_0x3cd8d3['openSync'](_0x47d7b3['dsn']);_0x3cd8d3[_0x0c9f('0x52')]();return _0x47d7b3;}})[_0x0c9f('0x24')](respondWithResult(_0x5d7697,null))[_0x0c9f('0x44')](handleError(_0x5d7697,null));};