Built motion from commit 753c950e.|2.5.42
[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 _0xe2bc=['json','undefined','limit','offset','count','set','apply','then','destroy','get','Intervals','UserProfileResource','error','stack','name','send','index','Interval','rawAttributes','fieldName','type','model','map','query','keys','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','catch','show','params','intersection','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','addInterval','getIntervals','findOne','hasOwnProperty','addIntervals','sequelize','IntervalId','bulkCreate','findAll','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','end'];(function(_0x508767,_0x369e53){var _0x2480fe=function(_0x25957e){while(--_0x25957e){_0x508767['push'](_0x508767['shift']());}};_0x2480fe(++_0x369e53);}(_0xe2bc,0x1e3));var _0xce2b=function(_0x173441,_0x26b0d9){_0x173441=_0x173441-0x0;var _0x2423a8=_0xe2bc[_0x173441];return _0x2423a8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xce2b('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xce2b('0x1'));var rp=require(_0xce2b('0x2'));var moment=require(_0xce2b('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xce2b('0x4'));var util=require(_0xce2b('0x5'));var path=require(_0xce2b('0x6'));var sox=require(_0xce2b('0x7'));var csv=require(_0xce2b('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xce2b('0x9'));var _=require(_0xce2b('0xa'));var squel=require(_0xce2b('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xce2b('0xc'));var toCsv=require(_0xce2b('0x8'));var querystring=require('querystring');var Papa=require(_0xce2b('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xce2b('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xce2b('0xf'));var config=require(_0xce2b('0x10'));var licenseUtil=require('../../config/license/util');var db=require(_0xce2b('0x11'))['db'];var extensions=require(_0xce2b('0x12'));function respondWithStatusCode(_0x105304,_0x37fef6){_0x37fef6=_0x37fef6||0xcc;return function(_0x4ec1dd){if(_0x4ec1dd){return _0x105304[_0xce2b('0x13')](_0x37fef6);}return _0x105304['status'](_0x37fef6)[_0xce2b('0x14')]();};}function respondWithResult(_0x23e649,_0x2cf103){_0x2cf103=_0x2cf103||0xc8;return function(_0x3fde50){if(_0x3fde50){return _0x23e649['status'](_0x2cf103)[_0xce2b('0x15')](_0x3fde50);}};}function respondWithFilteredResult(_0x531f06,_0x1937e2){return function(_0x3d4d76){if(_0x3d4d76){var _0x287e85=typeof _0x1937e2['offset']===_0xce2b('0x16')&&typeof _0x1937e2[_0xce2b('0x17')]===_0xce2b('0x16');var _0x177610=_0x3d4d76['count'];var _0x7fffb0=_0x287e85?0x0:_0x1937e2[_0xce2b('0x18')];var _0x22034b=_0x287e85?_0x3d4d76[_0xce2b('0x19')]:_0x1937e2[_0xce2b('0x18')]+_0x1937e2[_0xce2b('0x17')];var _0x1f60b8;if(_0x22034b>=_0x177610){_0x22034b=_0x177610;_0x1f60b8=0xc8;}else{_0x1f60b8=0xce;}_0x531f06['status'](_0x1f60b8);return _0x531f06[_0xce2b('0x1a')]('Content-Range',_0x7fffb0+'-'+_0x22034b+'/'+_0x177610)[_0xce2b('0x15')](_0x3d4d76);}return null;};}function patchUpdates(_0x45da13){return function(_0x3da8b3){try{jsonpatch[_0xce2b('0x1b')](_0x3da8b3,_0x45da13,!![]);}catch(_0x20f6e6){return BPromise['reject'](_0x20f6e6);}return _0x3da8b3['save']();};}function saveUpdates(_0x535e84,_0x2f9206){return function(_0x30514a){if(_0x30514a){return _0x30514a['update'](_0x535e84)[_0xce2b('0x1c')](function(_0x37ee4e){return _0x37ee4e;});}return null;};}function removeEntity(_0x301581,_0x159af8){return function(_0x1b5210){if(_0x1b5210){return _0x1b5210[_0xce2b('0x1d')]()[_0xce2b('0x1c')](function(){var _0x4184ec=_0x1b5210[_0xce2b('0x1e')]({'plain':!![]});var _0x379024=_0xce2b('0x1f');return db[_0xce2b('0x20')]['destroy']({'where':{'type':_0x379024,'resourceId':_0x4184ec['id']}})[_0xce2b('0x1c')](function(){return _0x1b5210;});})[_0xce2b('0x1c')](function(){_0x301581['status'](0xcc)[_0xce2b('0x14')]();});}};}function handleEntityNotFound(_0x22b51e,_0x456de2){return function(_0x21030e){if(!_0x21030e){_0x22b51e[_0xce2b('0x13')](0x194);}return _0x21030e;};}function handleError(_0x457b19,_0x1e2c19){_0x1e2c19=_0x1e2c19||0x1f4;return function(_0x4c16e2){logger[_0xce2b('0x21')](_0x4c16e2[_0xce2b('0x22')]);if(_0x4c16e2[_0xce2b('0x23')]){delete _0x4c16e2[_0xce2b('0x23')];}_0x457b19['status'](_0x1e2c19)[_0xce2b('0x24')](_0x4c16e2);};}exports[_0xce2b('0x25')]=function(_0x55cea5,_0x5ef181){var _0x4b650e={},_0x4356cf={},_0x3017b0={'count':0x0,'rows':[]};var _0x2bc9c5=_['map'](db[_0xce2b('0x26')][_0xce2b('0x27')],function(_0x212a05){return{'name':_0x212a05[_0xce2b('0x28')],'type':_0x212a05[_0xce2b('0x29')]['key']};});_0x4356cf[_0xce2b('0x2a')]=_[_0xce2b('0x2b')](_0x2bc9c5,_0xce2b('0x23'));_0x4356cf[_0xce2b('0x2c')]=_[_0xce2b('0x2d')](_0x55cea5['query']);_0x4356cf['filters']=_['intersection'](_0x4356cf[_0xce2b('0x2a')],_0x4356cf[_0xce2b('0x2c')]);_0x4b650e[_0xce2b('0x2e')]=_['intersection'](_0x4356cf['model'],qs[_0xce2b('0x2f')](_0x55cea5['query'][_0xce2b('0x2f')]));_0x4b650e['attributes']=_0x4b650e[_0xce2b('0x2e')][_0xce2b('0x30')]?_0x4b650e[_0xce2b('0x2e')]:_0x4356cf['model'];if(!_0x55cea5['query']['hasOwnProperty'](_0xce2b('0x31'))){_0x4b650e['limit']=qs['limit'](_0x55cea5[_0xce2b('0x2c')]['limit']);_0x4b650e[_0xce2b('0x18')]=qs[_0xce2b('0x18')](_0x55cea5['query']['offset']);}_0x4b650e[_0xce2b('0x32')]=qs[_0xce2b('0x33')](_0x55cea5[_0xce2b('0x2c')][_0xce2b('0x33')]);_0x4b650e[_0xce2b('0x34')]=qs[_0xce2b('0x35')](_[_0xce2b('0x36')](_0x55cea5[_0xce2b('0x2c')],_0x4356cf['filters']),_0x2bc9c5);if(_0x55cea5[_0xce2b('0x2c')][_0xce2b('0x37')]){_0x4b650e[_0xce2b('0x34')]=_[_0xce2b('0x38')](_0x4b650e[_0xce2b('0x34')],{'$or':_[_0xce2b('0x2b')](_0x2bc9c5,function(_0x2e52d5){if(_0x2e52d5[_0xce2b('0x29')]!==_0xce2b('0x39')){var _0x10e1fe={};_0x10e1fe[_0x2e52d5['name']]={'$like':'%'+_0x55cea5['query'][_0xce2b('0x37')]+'%'};return _0x10e1fe;}})});}_0x4b650e=_[_0xce2b('0x38')]({},_0x4b650e,_0x55cea5[_0xce2b('0x3a')]);var _0x518e03={'where':_0x4b650e[_0xce2b('0x34')]};return db['Interval']['count'](_0x518e03)['then'](function(_0x2645a1){_0x3017b0['count']=_0x2645a1;if(_0x55cea5[_0xce2b('0x2c')][_0xce2b('0x3b')]){_0x4b650e[_0xce2b('0x3c')]=[{'all':!![]}];}return db[_0xce2b('0x26')]['findAll'](_0x4b650e);})[_0xce2b('0x1c')](function(_0x2b4bd8){_0x3017b0['rows']=_0x2b4bd8;return _0x3017b0;})[_0xce2b('0x1c')](respondWithFilteredResult(_0x5ef181,_0x4b650e))[_0xce2b('0x3d')](handleError(_0x5ef181,null));};exports[_0xce2b('0x3e')]=function(_0xd310a1,_0x5e4cb5){var _0xe52d97={'raw':!![],'where':{'id':_0xd310a1[_0xce2b('0x3f')]['id']}},_0x16e125={};_0x16e125[_0xce2b('0x2a')]=_[_0xce2b('0x2d')](db[_0xce2b('0x26')][_0xce2b('0x27')]);_0x16e125[_0xce2b('0x2c')]=_[_0xce2b('0x2d')](_0xd310a1[_0xce2b('0x2c')]);_0x16e125[_0xce2b('0x35')]=_[_0xce2b('0x40')](_0x16e125[_0xce2b('0x2a')],_0x16e125['query']);_0xe52d97[_0xce2b('0x2e')]=_[_0xce2b('0x40')](_0x16e125['model'],qs[_0xce2b('0x2f')](_0xd310a1[_0xce2b('0x2c')][_0xce2b('0x2f')]));_0xe52d97[_0xce2b('0x2e')]=_0xe52d97['attributes'][_0xce2b('0x30')]?_0xe52d97[_0xce2b('0x2e')]:_0x16e125[_0xce2b('0x2a')];if(_0xd310a1['query']['includeAll']){_0xe52d97[_0xce2b('0x3c')]=[{'all':!![]}];}_0xe52d97=_[_0xce2b('0x38')]({},_0xe52d97,_0xd310a1[_0xce2b('0x3a')]);return db[_0xce2b('0x26')][_0xce2b('0x41')](_0xe52d97)['then'](handleEntityNotFound(_0x5e4cb5,null))[_0xce2b('0x1c')](respondWithResult(_0x5e4cb5,null))[_0xce2b('0x3d')](handleError(_0x5e4cb5,null));};exports[_0xce2b('0x42')]=function(_0x138613,_0x1552c8){return db[_0xce2b('0x26')][_0xce2b('0x42')](_0x138613[_0xce2b('0x43')],{})[_0xce2b('0x1c')](function(_0x1da9b1){var _0x35d690=_0x138613[_0xce2b('0x44')][_0xce2b('0x1e')]({'plain':!![]});if(!_0x35d690)throw new Error(_0xce2b('0x45'));if(_0x35d690[_0xce2b('0x46')]==='user'){var _0x41d6e1=_0x1da9b1['get']({'plain':!![]});var _0x193004='Intervals';return db[_0xce2b('0x47')][_0xce2b('0x41')]({'where':{'name':_0x193004,'userProfileId':_0x35d690['userProfileId']},'raw':!![]})[_0xce2b('0x1c')](function(_0x75d180){if(_0x75d180&&_0x75d180[_0xce2b('0x48')]===0x0){return db[_0xce2b('0x20')][_0xce2b('0x42')]({'name':_0x41d6e1['name'],'resourceId':_0x41d6e1['id'],'type':_0x75d180['name'],'sectionId':_0x75d180['id']},{})[_0xce2b('0x1c')](function(){return _0x1da9b1;});}else{return _0x1da9b1;}})[_0xce2b('0x3d')](function(_0x47573f){logger[_0xce2b('0x21')](_0xce2b('0x49'),_0x47573f);throw _0x47573f;});}return _0x1da9b1;})[_0xce2b('0x1c')](respondWithResult(_0x1552c8,0xc9))[_0xce2b('0x3d')](handleError(_0x1552c8,null));};exports[_0xce2b('0x4a')]=function(_0x4296e9,_0x277360){if(_0x4296e9[_0xce2b('0x43')]['id']){delete _0x4296e9[_0xce2b('0x43')]['id'];}return db['Interval']['find']({'where':{'id':_0x4296e9[_0xce2b('0x3f')]['id']}})[_0xce2b('0x1c')](handleEntityNotFound(_0x277360,null))[_0xce2b('0x1c')](saveUpdates(_0x4296e9[_0xce2b('0x43')],null))['then'](respondWithResult(_0x277360,null))[_0xce2b('0x3d')](handleError(_0x277360,null));};exports[_0xce2b('0x1d')]=function(_0x4d64a1,_0x379415){return db[_0xce2b('0x26')][_0xce2b('0x41')]({'where':{'id':_0x4d64a1[_0xce2b('0x3f')]['id']}})[_0xce2b('0x1c')](handleEntityNotFound(_0x379415,null))[_0xce2b('0x1c')](removeEntity(_0x379415,null))[_0xce2b('0x3d')](handleError(_0x379415,null));};exports[_0xce2b('0x4b')]=function(_0xd4e2c9,_0xa3628d,_0x23a6d6){if(_0xd4e2c9[_0xce2b('0x43')]['id']){delete _0xd4e2c9[_0xce2b('0x43')]['id'];}return db['Interval'][_0xce2b('0x41')]({'where':{'id':_0xd4e2c9['params']['id']}})[_0xce2b('0x1c')](handleEntityNotFound(_0xa3628d,null))['then'](function(_0x117dbc){if(_0x117dbc){_0xd4e2c9[_0xce2b('0x43')]['IntervalId']=_0x117dbc['id'];return db[_0xce2b('0x26')][_0xce2b('0x42')](_0xd4e2c9[_0xce2b('0x43')]);}})[_0xce2b('0x1c')](respondWithResult(_0xa3628d,null))[_0xce2b('0x3d')](handleError(_0xa3628d,null));};exports[_0xce2b('0x4c')]=function(_0x2b1fa7,_0x217bef,_0xb22a0){var _0x55825e={};var _0x189346={};var _0x56d1b8;var _0x22170f;return db[_0xce2b('0x26')][_0xce2b('0x4d')]({'where':{'id':_0x2b1fa7[_0xce2b('0x3f')]['id']}})[_0xce2b('0x1c')](handleEntityNotFound(_0x217bef,null))[_0xce2b('0x1c')](function(_0x22202d){if(_0x22202d){_0x56d1b8=_0x22202d;_0x189346[_0xce2b('0x2a')]=_['keys'](db[_0xce2b('0x26')][_0xce2b('0x27')]);_0x189346[_0xce2b('0x2c')]=_[_0xce2b('0x2d')](_0x2b1fa7[_0xce2b('0x2c')]);_0x189346[_0xce2b('0x35')]=_[_0xce2b('0x40')](_0x189346[_0xce2b('0x2a')],_0x189346[_0xce2b('0x2c')]);_0x55825e[_0xce2b('0x2e')]=_[_0xce2b('0x40')](_0x189346[_0xce2b('0x2a')],qs[_0xce2b('0x2f')](_0x2b1fa7[_0xce2b('0x2c')][_0xce2b('0x2f')]));_0x55825e[_0xce2b('0x2e')]=_0x55825e[_0xce2b('0x2e')][_0xce2b('0x30')]?_0x55825e['attributes']:_0x189346[_0xce2b('0x2a')];_0x55825e[_0xce2b('0x32')]=qs[_0xce2b('0x33')](_0x2b1fa7[_0xce2b('0x2c')]['sort']);_0x55825e[_0xce2b('0x34')]=qs[_0xce2b('0x35')](_[_0xce2b('0x36')](_0x2b1fa7['query'],_0x189346[_0xce2b('0x35')]));if(_0x2b1fa7['query']['filter']){_0x55825e[_0xce2b('0x34')]=_[_0xce2b('0x38')](_0x55825e['where'],{'$or':_[_0xce2b('0x2b')](_0x55825e['attributes'],function(_0x599d8f){var _0x1f2460={};_0x1f2460[_0x599d8f]={'$like':'%'+_0x2b1fa7[_0xce2b('0x2c')][_0xce2b('0x37')]+'%'};return _0x1f2460;})});}_0x55825e=_[_0xce2b('0x38')]({},_0x55825e,_0x2b1fa7[_0xce2b('0x3a')]);return _0x56d1b8[_0xce2b('0x4c')](_0x55825e);}})[_0xce2b('0x1c')](function(_0x3b996d){if(_0x3b996d){_0x22170f=_0x3b996d[_0xce2b('0x30')];if(!_0x2b1fa7[_0xce2b('0x2c')][_0xce2b('0x4e')](_0xce2b('0x31'))){_0x55825e[_0xce2b('0x17')]=qs[_0xce2b('0x17')](_0x2b1fa7[_0xce2b('0x2c')][_0xce2b('0x17')]);_0x55825e[_0xce2b('0x18')]=qs[_0xce2b('0x18')](_0x2b1fa7[_0xce2b('0x2c')][_0xce2b('0x18')]);}return _0x56d1b8[_0xce2b('0x4c')](_0x55825e);}})[_0xce2b('0x1c')](function(_0x452196){if(_0x452196){return _0x452196?{'count':_0x22170f,'rows':_0x452196}:null;}})[_0xce2b('0x1c')](respondWithResult(_0x217bef,null))[_0xce2b('0x3d')](handleError(_0x217bef,null));};exports[_0xce2b('0x4f')]=function(_0x1b9176,_0x7e986b,_0x1977e1){return db[_0xce2b('0x26')][_0xce2b('0x4d')]({'where':{'id':_0x1b9176[_0xce2b('0x3f')]['id']}})[_0xce2b('0x1c')](handleEntityNotFound(_0x7e986b,null))[_0xce2b('0x1c')](function(_0x551465){if(_0x551465){return db[_0xce2b('0x50')]['transaction'](function(_0x3475bf){return db['Interval'][_0xce2b('0x1d')]({'where':{'IntervalId':_0x1b9176[_0xce2b('0x3f')]['id']},'transaction':_0x3475bf})[_0xce2b('0x1c')](function(_0x1c54ce){var _0x38ae9b=_['map'](_0x1b9176[_0xce2b('0x43')],function(_0x3235df){delete _0x3235df['id'];_0x3235df[_0xce2b('0x51')]=_0x1b9176['params']['id'];return _0x3235df;});return db[_0xce2b('0x26')][_0xce2b('0x52')](_0x38ae9b,{'transaction':_0x3475bf});});})['then'](function(){return db[_0xce2b('0x26')][_0xce2b('0x53')]({'where':{'IntervalId':_0x1b9176[_0xce2b('0x3f')]['id']}});});}})['then'](respondWithResult(_0x7e986b,null))[_0xce2b('0x3d')](handleError(_0x7e986b,null));};