Built motion from commit d5e4af8c.|2.6.23
[motion2.git] / server / api / interval / interval.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 _0x0210=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','get','Intervals','UserProfileResource','stack','name','send','index','Interval','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','catch','show','params','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','addInterval','IntervalId','getIntervals','addIntervals','findOne','sequelize','findAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','squel','crypto','jsforce','desk.js'];(function(_0x391c55,_0x168617){var _0xa434e0=function(_0x51fa5c){while(--_0x51fa5c){_0x391c55['push'](_0x391c55['shift']());}};_0xa434e0(++_0x168617);}(_0x0210,0xa9));var _0x0021=function(_0x52bb0c,_0x26a464){_0x52bb0c=_0x52bb0c-0x0;var _0x40a7ee=_0x0210[_0x52bb0c];return _0x40a7ee;};'use strict';var emlformat=require(_0x0021('0x0'));var rimraf=require(_0x0021('0x1'));var zipdir=require(_0x0021('0x2'));var jsonpatch=require(_0x0021('0x3'));var rp=require(_0x0021('0x4'));var moment=require(_0x0021('0x5'));var BPromise=require(_0x0021('0x6'));var Mustache=require(_0x0021('0x7'));var util=require(_0x0021('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x0021('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0021('0xa'));var _=require('lodash');var squel=require(_0x0021('0xb'));var crypto=require(_0x0021('0xc'));var jsforce=require(_0x0021('0xd'));var deskjs=require(_0x0021('0xe'));var toCsv=require('to-csv');var querystring=require(_0x0021('0xf'));var Papa=require(_0x0021('0x10'));var Redis=require(_0x0021('0x11'));var authService=require(_0x0021('0x12'));var qs=require(_0x0021('0x13'));var as=require(_0x0021('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0021('0x15'))(_0x0021('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0021('0x17'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x50b061,_0x3da42c){_0x3da42c=_0x3da42c||0xcc;return function(_0x26748a){if(_0x26748a){return _0x50b061[_0x0021('0x18')](_0x3da42c);}return _0x50b061[_0x0021('0x19')](_0x3da42c)[_0x0021('0x1a')]();};}function respondWithResult(_0x25f155,_0x4f2059){_0x4f2059=_0x4f2059||0xc8;return function(_0x3245e7){if(_0x3245e7){return _0x25f155[_0x0021('0x19')](_0x4f2059)['json'](_0x3245e7);}};}function respondWithFilteredResult(_0x63ca17,_0x58e815){return function(_0x529ce3){if(_0x529ce3){var _0x44d3d9=typeof _0x58e815[_0x0021('0x1b')]===_0x0021('0x1c')&&typeof _0x58e815[_0x0021('0x1d')]===_0x0021('0x1c');var _0x2d7247=_0x529ce3[_0x0021('0x1e')];var _0x2f8775=_0x44d3d9?0x0:_0x58e815[_0x0021('0x1b')];var _0x4c389a=_0x44d3d9?_0x529ce3[_0x0021('0x1e')]:_0x58e815[_0x0021('0x1b')]+_0x58e815['limit'];var _0x3541fc;if(_0x4c389a>=_0x2d7247){_0x4c389a=_0x2d7247;_0x3541fc=0xc8;}else{_0x3541fc=0xce;}_0x63ca17['status'](_0x3541fc);return _0x63ca17[_0x0021('0x1f')](_0x0021('0x20'),_0x2f8775+'-'+_0x4c389a+'/'+_0x2d7247)[_0x0021('0x21')](_0x529ce3);}return null;};}function patchUpdates(_0x2a99aa){return function(_0x48a6f2){try{jsonpatch[_0x0021('0x22')](_0x48a6f2,_0x2a99aa,!![]);}catch(_0xdc4943){return BPromise[_0x0021('0x23')](_0xdc4943);}return _0x48a6f2[_0x0021('0x24')]();};}function saveUpdates(_0x2c01a0,_0x4fa6b1){return function(_0x1e4161){if(_0x1e4161){return _0x1e4161[_0x0021('0x25')](_0x2c01a0)[_0x0021('0x26')](function(_0x515ae3){return _0x515ae3;});}return null;};}function removeEntity(_0x164795,_0x3643b9){return function(_0x37cd07){if(_0x37cd07){return _0x37cd07[_0x0021('0x27')]()[_0x0021('0x26')](function(){var _0x58a381=_0x37cd07[_0x0021('0x28')]({'plain':!![]});var _0x1a0a21=_0x0021('0x29');return db[_0x0021('0x2a')]['destroy']({'where':{'type':_0x1a0a21,'resourceId':_0x58a381['id']}})[_0x0021('0x26')](function(){return _0x37cd07;});})['then'](function(){_0x164795[_0x0021('0x19')](0xcc)[_0x0021('0x1a')]();});}};}function handleEntityNotFound(_0x50040b,_0x5c4313){return function(_0x5f4328){if(!_0x5f4328){_0x50040b[_0x0021('0x18')](0x194);}return _0x5f4328;};}function handleError(_0x124c45,_0x1e67db){_0x1e67db=_0x1e67db||0x1f4;return function(_0x24441e){logger['error'](_0x24441e[_0x0021('0x2b')]);if(_0x24441e[_0x0021('0x2c')]){delete _0x24441e['name'];}_0x124c45[_0x0021('0x19')](_0x1e67db)[_0x0021('0x2d')](_0x24441e);};}exports[_0x0021('0x2e')]=function(_0x27a43a,_0x1e9f3a){var _0xc5b85b={},_0x5331cf={},_0x41b512={'count':0x0,'rows':[]};var _0x4ecb7a=_['map'](db[_0x0021('0x2f')][_0x0021('0x30')],function(_0x3e867b){return{'name':_0x3e867b[_0x0021('0x31')],'type':_0x3e867b[_0x0021('0x32')][_0x0021('0x33')]};});_0x5331cf[_0x0021('0x34')]=_[_0x0021('0x35')](_0x4ecb7a,_0x0021('0x2c'));_0x5331cf[_0x0021('0x36')]=_[_0x0021('0x37')](_0x27a43a[_0x0021('0x36')]);_0x5331cf['filters']=_[_0x0021('0x38')](_0x5331cf[_0x0021('0x34')],_0x5331cf[_0x0021('0x36')]);_0xc5b85b[_0x0021('0x39')]=_['intersection'](_0x5331cf[_0x0021('0x34')],qs[_0x0021('0x3a')](_0x27a43a[_0x0021('0x36')]['fields']));_0xc5b85b['attributes']=_0xc5b85b[_0x0021('0x39')][_0x0021('0x3b')]?_0xc5b85b[_0x0021('0x39')]:_0x5331cf[_0x0021('0x34')];if(!_0x27a43a['query'][_0x0021('0x3c')](_0x0021('0x3d'))){_0xc5b85b[_0x0021('0x1d')]=qs[_0x0021('0x1d')](_0x27a43a['query'][_0x0021('0x1d')]);_0xc5b85b[_0x0021('0x1b')]=qs[_0x0021('0x1b')](_0x27a43a[_0x0021('0x36')][_0x0021('0x1b')]);}_0xc5b85b[_0x0021('0x3e')]=qs['sort'](_0x27a43a[_0x0021('0x36')][_0x0021('0x3f')]);_0xc5b85b[_0x0021('0x40')]=qs['filters'](_[_0x0021('0x41')](_0x27a43a['query'],_0x5331cf[_0x0021('0x42')]),_0x4ecb7a);if(_0x27a43a[_0x0021('0x36')][_0x0021('0x43')]){_0xc5b85b[_0x0021('0x40')]=_[_0x0021('0x44')](_0xc5b85b['where'],{'$or':_['map'](_0x4ecb7a,function(_0x53e756){if(_0x53e756['type']!==_0x0021('0x45')){var _0x897bc={};_0x897bc[_0x53e756['name']]={'$like':'%'+_0x27a43a['query'][_0x0021('0x43')]+'%'};return _0x897bc;}})});}_0xc5b85b=_[_0x0021('0x44')]({},_0xc5b85b,_0x27a43a[_0x0021('0x46')]);var _0xf22674={'where':_0xc5b85b[_0x0021('0x40')]};return db[_0x0021('0x2f')][_0x0021('0x1e')](_0xf22674)['then'](function(_0x38a844){_0x41b512[_0x0021('0x1e')]=_0x38a844;if(_0x27a43a[_0x0021('0x36')][_0x0021('0x47')]){_0xc5b85b['include']=[{'all':!![]}];}return db[_0x0021('0x2f')]['findAll'](_0xc5b85b);})[_0x0021('0x26')](function(_0x31b2a2){_0x41b512['rows']=_0x31b2a2;return _0x41b512;})[_0x0021('0x26')](respondWithFilteredResult(_0x1e9f3a,_0xc5b85b))[_0x0021('0x48')](handleError(_0x1e9f3a,null));};exports[_0x0021('0x49')]=function(_0x4e75e4,_0x5b2811){var _0x83e1e7={'raw':!![],'where':{'id':_0x4e75e4[_0x0021('0x4a')]['id']}},_0x3195f9={};_0x3195f9[_0x0021('0x34')]=_[_0x0021('0x37')](db[_0x0021('0x2f')]['rawAttributes']);_0x3195f9[_0x0021('0x36')]=_[_0x0021('0x37')](_0x4e75e4[_0x0021('0x36')]);_0x3195f9[_0x0021('0x42')]=_[_0x0021('0x38')](_0x3195f9[_0x0021('0x34')],_0x3195f9['query']);_0x83e1e7['attributes']=_[_0x0021('0x38')](_0x3195f9[_0x0021('0x34')],qs[_0x0021('0x3a')](_0x4e75e4[_0x0021('0x36')][_0x0021('0x3a')]));_0x83e1e7[_0x0021('0x39')]=_0x83e1e7['attributes'][_0x0021('0x3b')]?_0x83e1e7[_0x0021('0x39')]:_0x3195f9[_0x0021('0x34')];if(_0x4e75e4[_0x0021('0x36')][_0x0021('0x47')]){_0x83e1e7[_0x0021('0x4b')]=[{'all':!![]}];}_0x83e1e7=_['merge']({},_0x83e1e7,_0x4e75e4[_0x0021('0x46')]);return db[_0x0021('0x2f')]['find'](_0x83e1e7)[_0x0021('0x26')](handleEntityNotFound(_0x5b2811,null))[_0x0021('0x26')](respondWithResult(_0x5b2811,null))['catch'](handleError(_0x5b2811,null));};exports[_0x0021('0x4c')]=function(_0x2808f9,_0x378fd9){return db[_0x0021('0x2f')][_0x0021('0x4c')](_0x2808f9[_0x0021('0x4d')],{})['then'](function(_0x4ad1f2){var _0x3194f9=_0x2808f9[_0x0021('0x4e')][_0x0021('0x28')]({'plain':!![]});if(!_0x3194f9)throw new Error(_0x0021('0x4f'));if(_0x3194f9[_0x0021('0x50')]===_0x0021('0x4e')){var _0x5712e7=_0x4ad1f2[_0x0021('0x28')]({'plain':!![]});var _0xd7d20c=_0x0021('0x29');return db[_0x0021('0x51')]['find']({'where':{'name':_0xd7d20c,'userProfileId':_0x3194f9[_0x0021('0x52')]},'raw':!![]})[_0x0021('0x26')](function(_0x301288){if(_0x301288&&_0x301288['autoAssociation']===0x0){return db[_0x0021('0x2a')][_0x0021('0x4c')]({'name':_0x5712e7[_0x0021('0x2c')],'resourceId':_0x5712e7['id'],'type':_0x301288[_0x0021('0x2c')],'sectionId':_0x301288['id']},{})[_0x0021('0x26')](function(){return _0x4ad1f2;});}else{return _0x4ad1f2;}})[_0x0021('0x48')](function(_0x49446d){logger['error'](_0x0021('0x53'),_0x49446d);throw _0x49446d;});}return _0x4ad1f2;})[_0x0021('0x26')](respondWithResult(_0x378fd9,0xc9))['catch'](handleError(_0x378fd9,null));};exports['update']=function(_0xf16ecc,_0x53576){if(_0xf16ecc['body']['id']){delete _0xf16ecc[_0x0021('0x4d')]['id'];}return db['Interval'][_0x0021('0x54')]({'where':{'id':_0xf16ecc[_0x0021('0x4a')]['id']}})[_0x0021('0x26')](handleEntityNotFound(_0x53576,null))[_0x0021('0x26')](saveUpdates(_0xf16ecc[_0x0021('0x4d')],null))[_0x0021('0x26')](respondWithResult(_0x53576,null))[_0x0021('0x48')](handleError(_0x53576,null));};exports[_0x0021('0x27')]=function(_0x52f69,_0x50c9f5){return db[_0x0021('0x2f')][_0x0021('0x54')]({'where':{'id':_0x52f69[_0x0021('0x4a')]['id']}})[_0x0021('0x26')](handleEntityNotFound(_0x50c9f5,null))['then'](removeEntity(_0x50c9f5,null))['catch'](handleError(_0x50c9f5,null));};exports[_0x0021('0x55')]=function(_0xa68178,_0x499fd1,_0x5ddf84){if(_0xa68178[_0x0021('0x4d')]['id']){delete _0xa68178['body']['id'];}return db[_0x0021('0x2f')][_0x0021('0x54')]({'where':{'id':_0xa68178[_0x0021('0x4a')]['id']}})['then'](handleEntityNotFound(_0x499fd1,null))[_0x0021('0x26')](function(_0x390f82){if(_0x390f82){_0xa68178[_0x0021('0x4d')][_0x0021('0x56')]=_0x390f82['id'];return db[_0x0021('0x2f')]['create'](_0xa68178[_0x0021('0x4d')]);}})[_0x0021('0x26')](respondWithResult(_0x499fd1,null))[_0x0021('0x48')](handleError(_0x499fd1,null));};exports[_0x0021('0x57')]=function(_0x51302c,_0x1dc48c,_0x5ef3b6){var _0xc03f1e={};var _0x145bb0={};var _0xb536e8;var _0x505951;return db[_0x0021('0x2f')]['findOne']({'where':{'id':_0x51302c[_0x0021('0x4a')]['id']}})[_0x0021('0x26')](handleEntityNotFound(_0x1dc48c,null))[_0x0021('0x26')](function(_0x5ec1b4){if(_0x5ec1b4){_0xb536e8=_0x5ec1b4;_0x145bb0[_0x0021('0x34')]=_[_0x0021('0x37')](db[_0x0021('0x2f')]['rawAttributes']);_0x145bb0[_0x0021('0x36')]=_[_0x0021('0x37')](_0x51302c[_0x0021('0x36')]);_0x145bb0[_0x0021('0x42')]=_[_0x0021('0x38')](_0x145bb0[_0x0021('0x34')],_0x145bb0['query']);_0xc03f1e[_0x0021('0x39')]=_[_0x0021('0x38')](_0x145bb0[_0x0021('0x34')],qs[_0x0021('0x3a')](_0x51302c['query'][_0x0021('0x3a')]));_0xc03f1e['attributes']=_0xc03f1e[_0x0021('0x39')][_0x0021('0x3b')]?_0xc03f1e[_0x0021('0x39')]:_0x145bb0[_0x0021('0x34')];_0xc03f1e[_0x0021('0x3e')]=qs[_0x0021('0x3f')](_0x51302c[_0x0021('0x36')][_0x0021('0x3f')]);_0xc03f1e['where']=qs['filters'](_[_0x0021('0x41')](_0x51302c[_0x0021('0x36')],_0x145bb0['filters']));if(_0x51302c['query'][_0x0021('0x43')]){_0xc03f1e[_0x0021('0x40')]=_[_0x0021('0x44')](_0xc03f1e[_0x0021('0x40')],{'$or':_[_0x0021('0x35')](_0xc03f1e['attributes'],function(_0x29c505){var _0x2c14e3={};_0x2c14e3[_0x29c505]={'$like':'%'+_0x51302c[_0x0021('0x36')][_0x0021('0x43')]+'%'};return _0x2c14e3;})});}_0xc03f1e=_[_0x0021('0x44')]({},_0xc03f1e,_0x51302c['options']);return _0xb536e8[_0x0021('0x57')](_0xc03f1e);}})[_0x0021('0x26')](function(_0x1059a5){if(_0x1059a5){_0x505951=_0x1059a5[_0x0021('0x3b')];if(!_0x51302c[_0x0021('0x36')]['hasOwnProperty'](_0x0021('0x3d'))){_0xc03f1e[_0x0021('0x1d')]=qs[_0x0021('0x1d')](_0x51302c[_0x0021('0x36')][_0x0021('0x1d')]);_0xc03f1e[_0x0021('0x1b')]=qs['offset'](_0x51302c[_0x0021('0x36')][_0x0021('0x1b')]);}return _0xb536e8['getIntervals'](_0xc03f1e);}})['then'](function(_0x26b3da){if(_0x26b3da){return _0x26b3da?{'count':_0x505951,'rows':_0x26b3da}:null;}})[_0x0021('0x26')](respondWithResult(_0x1dc48c,null))[_0x0021('0x48')](handleError(_0x1dc48c,null));};exports[_0x0021('0x58')]=function(_0x269eb1,_0x1380d6,_0x51f176){return db[_0x0021('0x2f')][_0x0021('0x59')]({'where':{'id':_0x269eb1[_0x0021('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1380d6,null))['then'](function(_0x353e52){if(_0x353e52){return db[_0x0021('0x5a')]['transaction'](function(_0x104e80){return db[_0x0021('0x2f')][_0x0021('0x27')]({'where':{'IntervalId':_0x269eb1[_0x0021('0x4a')]['id']},'transaction':_0x104e80})[_0x0021('0x26')](function(_0x5d216f){var _0x38fccd=_['map'](_0x269eb1[_0x0021('0x4d')],function(_0x46d6c5){delete _0x46d6c5['id'];_0x46d6c5[_0x0021('0x56')]=_0x269eb1[_0x0021('0x4a')]['id'];return _0x46d6c5;});return db[_0x0021('0x2f')]['bulkCreate'](_0x38fccd,{'transaction':_0x104e80});});})[_0x0021('0x26')](function(){return db[_0x0021('0x2f')][_0x0021('0x5b')]({'where':{'IntervalId':_0x269eb1[_0x0021('0x4a')]['id']}});});}})[_0x0021('0x26')](respondWithResult(_0x1380d6,null))['catch'](handleError(_0x1380d6,null));};