Built motion from commit b0a9a629.|2.6.33
[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 _0xbe18=['includeAll','include','findAll','rows','catch','show','params','intersection','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getIntervals','findOne','addIntervals','sequelize','transaction','IntervalId','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','get','UserProfileResource','end','error','stack','send','index','Interval','rawAttributes','type','key','model','map','name','query','keys','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options'];(function(_0x2bfc70,_0x47f4c5){var _0x5a9a23=function(_0x1b209d){while(--_0x1b209d){_0x2bfc70['push'](_0x2bfc70['shift']());}};_0x5a9a23(++_0x47f4c5);}(_0xbe18,0x186));var _0x8be1=function(_0x3c40cc,_0x391640){_0x3c40cc=_0x3c40cc-0x0;var _0x4fb3f9=_0xbe18[_0x3c40cc];return _0x4fb3f9;};'use strict';var emlformat=require(_0x8be1('0x0'));var rimraf=require(_0x8be1('0x1'));var zipdir=require(_0x8be1('0x2'));var jsonpatch=require(_0x8be1('0x3'));var rp=require(_0x8be1('0x4'));var moment=require(_0x8be1('0x5'));var BPromise=require(_0x8be1('0x6'));var Mustache=require('mustache');var util=require(_0x8be1('0x7'));var path=require(_0x8be1('0x8'));var sox=require(_0x8be1('0x9'));var csv=require('to-csv');var ejs=require(_0x8be1('0xa'));var fs=require('fs');var fs_extra=require(_0x8be1('0xb'));var _=require(_0x8be1('0xc'));var squel=require(_0x8be1('0xd'));var crypto=require(_0x8be1('0xe'));var jsforce=require(_0x8be1('0xf'));var deskjs=require(_0x8be1('0x10'));var toCsv=require(_0x8be1('0x11'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8be1('0x12'));var qs=require(_0x8be1('0x13'));var as=require(_0x8be1('0x14'));var hardwareService=require(_0x8be1('0x15'));var logger=require(_0x8be1('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x8be1('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x8be1('0x18'))['db'];var extensions=require(_0x8be1('0x19'));function respondWithStatusCode(_0x4f4ef9,_0x1fff92){_0x1fff92=_0x1fff92||0xcc;return function(_0x46eaef){if(_0x46eaef){return _0x4f4ef9[_0x8be1('0x1a')](_0x1fff92);}return _0x4f4ef9[_0x8be1('0x1b')](_0x1fff92)['end']();};}function respondWithResult(_0xc7c20,_0x264bb1){_0x264bb1=_0x264bb1||0xc8;return function(_0xc1902b){if(_0xc1902b){return _0xc7c20['status'](_0x264bb1)[_0x8be1('0x1c')](_0xc1902b);}};}function respondWithFilteredResult(_0x15f535,_0x208cd3){return function(_0x26c818){if(_0x26c818){var _0x46b65f=typeof _0x208cd3[_0x8be1('0x1d')]===_0x8be1('0x1e')&&typeof _0x208cd3[_0x8be1('0x1f')]===_0x8be1('0x1e');var _0x422c33=_0x26c818[_0x8be1('0x20')];var _0x40d40f=_0x46b65f?0x0:_0x208cd3[_0x8be1('0x1d')];var _0x387433=_0x46b65f?_0x26c818['count']:_0x208cd3[_0x8be1('0x1d')]+_0x208cd3[_0x8be1('0x1f')];var _0x2bc485;if(_0x387433>=_0x422c33){_0x387433=_0x422c33;_0x2bc485=0xc8;}else{_0x2bc485=0xce;}_0x15f535['status'](_0x2bc485);return _0x15f535[_0x8be1('0x21')](_0x8be1('0x22'),_0x40d40f+'-'+_0x387433+'/'+_0x422c33)['json'](_0x26c818);}return null;};}function patchUpdates(_0x40bfcc){return function(_0x1055c5){try{jsonpatch[_0x8be1('0x23')](_0x1055c5,_0x40bfcc,!![]);}catch(_0x310431){return BPromise[_0x8be1('0x24')](_0x310431);}return _0x1055c5['save']();};}function saveUpdates(_0x25a828,_0x232f84){return function(_0x4d886b){if(_0x4d886b){return _0x4d886b[_0x8be1('0x25')](_0x25a828)[_0x8be1('0x26')](function(_0x3fd462){return _0x3fd462;});}return null;};}function removeEntity(_0x4d660e,_0xbb8af0){return function(_0x49af83){if(_0x49af83){return _0x49af83[_0x8be1('0x27')]()['then'](function(){var _0x3b4ac6=_0x49af83[_0x8be1('0x28')]({'plain':!![]});var _0x1db8ea='Intervals';return db[_0x8be1('0x29')][_0x8be1('0x27')]({'where':{'type':_0x1db8ea,'resourceId':_0x3b4ac6['id']}})[_0x8be1('0x26')](function(){return _0x49af83;});})[_0x8be1('0x26')](function(){_0x4d660e['status'](0xcc)[_0x8be1('0x2a')]();});}};}function handleEntityNotFound(_0x2c37aa,_0x394636){return function(_0xea53fb){if(!_0xea53fb){_0x2c37aa['sendStatus'](0x194);}return _0xea53fb;};}function handleError(_0x448e5d,_0x5d0c37){_0x5d0c37=_0x5d0c37||0x1f4;return function(_0x42d5dc){logger[_0x8be1('0x2b')](_0x42d5dc[_0x8be1('0x2c')]);if(_0x42d5dc['name']){delete _0x42d5dc['name'];}_0x448e5d[_0x8be1('0x1b')](_0x5d0c37)[_0x8be1('0x2d')](_0x42d5dc);};}exports[_0x8be1('0x2e')]=function(_0x356108,_0x3807b2){var _0x202f8e={},_0x37d136={},_0xba8058={'count':0x0,'rows':[]};var _0x461e12=_['map'](db[_0x8be1('0x2f')][_0x8be1('0x30')],function(_0x2e338b){return{'name':_0x2e338b['fieldName'],'type':_0x2e338b[_0x8be1('0x31')][_0x8be1('0x32')]};});_0x37d136[_0x8be1('0x33')]=_[_0x8be1('0x34')](_0x461e12,_0x8be1('0x35'));_0x37d136[_0x8be1('0x36')]=_[_0x8be1('0x37')](_0x356108[_0x8be1('0x36')]);_0x37d136['filters']=_['intersection'](_0x37d136['model'],_0x37d136[_0x8be1('0x36')]);_0x202f8e['attributes']=_['intersection'](_0x37d136['model'],qs[_0x8be1('0x38')](_0x356108[_0x8be1('0x36')][_0x8be1('0x38')]));_0x202f8e[_0x8be1('0x39')]=_0x202f8e[_0x8be1('0x39')][_0x8be1('0x3a')]?_0x202f8e['attributes']:_0x37d136[_0x8be1('0x33')];if(!_0x356108[_0x8be1('0x36')][_0x8be1('0x3b')](_0x8be1('0x3c'))){_0x202f8e[_0x8be1('0x1f')]=qs['limit'](_0x356108[_0x8be1('0x36')][_0x8be1('0x1f')]);_0x202f8e[_0x8be1('0x1d')]=qs[_0x8be1('0x1d')](_0x356108['query'][_0x8be1('0x1d')]);}_0x202f8e[_0x8be1('0x3d')]=qs[_0x8be1('0x3e')](_0x356108['query'][_0x8be1('0x3e')]);_0x202f8e[_0x8be1('0x3f')]=qs[_0x8be1('0x40')](_[_0x8be1('0x41')](_0x356108[_0x8be1('0x36')],_0x37d136[_0x8be1('0x40')]),_0x461e12);if(_0x356108[_0x8be1('0x36')][_0x8be1('0x42')]){_0x202f8e[_0x8be1('0x3f')]=_[_0x8be1('0x43')](_0x202f8e['where'],{'$or':_['map'](_0x461e12,function(_0x244035){if(_0x244035[_0x8be1('0x31')]!==_0x8be1('0x44')){var _0x42faaa={};_0x42faaa[_0x244035[_0x8be1('0x35')]]={'$like':'%'+_0x356108['query'][_0x8be1('0x42')]+'%'};return _0x42faaa;}})});}_0x202f8e=_[_0x8be1('0x43')]({},_0x202f8e,_0x356108[_0x8be1('0x45')]);var _0x202618={'where':_0x202f8e['where']};return db[_0x8be1('0x2f')][_0x8be1('0x20')](_0x202618)[_0x8be1('0x26')](function(_0x4d9da5){_0xba8058[_0x8be1('0x20')]=_0x4d9da5;if(_0x356108[_0x8be1('0x36')][_0x8be1('0x46')]){_0x202f8e[_0x8be1('0x47')]=[{'all':!![]}];}return db[_0x8be1('0x2f')][_0x8be1('0x48')](_0x202f8e);})[_0x8be1('0x26')](function(_0x319755){_0xba8058[_0x8be1('0x49')]=_0x319755;return _0xba8058;})[_0x8be1('0x26')](respondWithFilteredResult(_0x3807b2,_0x202f8e))[_0x8be1('0x4a')](handleError(_0x3807b2,null));};exports[_0x8be1('0x4b')]=function(_0x883b30,_0x5f2418){var _0x284296={'raw':!![],'where':{'id':_0x883b30[_0x8be1('0x4c')]['id']}},_0x15f5e3={};_0x15f5e3[_0x8be1('0x33')]=_[_0x8be1('0x37')](db[_0x8be1('0x2f')][_0x8be1('0x30')]);_0x15f5e3[_0x8be1('0x36')]=_['keys'](_0x883b30[_0x8be1('0x36')]);_0x15f5e3[_0x8be1('0x40')]=_[_0x8be1('0x4d')](_0x15f5e3[_0x8be1('0x33')],_0x15f5e3[_0x8be1('0x36')]);_0x284296[_0x8be1('0x39')]=_['intersection'](_0x15f5e3[_0x8be1('0x33')],qs[_0x8be1('0x38')](_0x883b30[_0x8be1('0x36')][_0x8be1('0x38')]));_0x284296[_0x8be1('0x39')]=_0x284296[_0x8be1('0x39')][_0x8be1('0x3a')]?_0x284296[_0x8be1('0x39')]:_0x15f5e3[_0x8be1('0x33')];if(_0x883b30[_0x8be1('0x36')][_0x8be1('0x46')]){_0x284296['include']=[{'all':!![]}];}_0x284296=_[_0x8be1('0x43')]({},_0x284296,_0x883b30[_0x8be1('0x45')]);return db['Interval'][_0x8be1('0x4e')](_0x284296)[_0x8be1('0x26')](handleEntityNotFound(_0x5f2418,null))[_0x8be1('0x26')](respondWithResult(_0x5f2418,null))[_0x8be1('0x4a')](handleError(_0x5f2418,null));};exports[_0x8be1('0x4f')]=function(_0x28268c,_0x52b8db){return db['Interval'][_0x8be1('0x4f')](_0x28268c[_0x8be1('0x50')],{})[_0x8be1('0x26')](function(_0x31e0b9){var _0x19e815=_0x28268c[_0x8be1('0x51')][_0x8be1('0x28')]({'plain':!![]});if(!_0x19e815)throw new Error(_0x8be1('0x52'));if(_0x19e815['role']===_0x8be1('0x51')){var _0x2ba0c1=_0x31e0b9[_0x8be1('0x28')]({'plain':!![]});var _0x79babc='Intervals';return db['UserProfileSection']['find']({'where':{'name':_0x79babc,'userProfileId':_0x19e815[_0x8be1('0x53')]},'raw':!![]})['then'](function(_0x38fc98){if(_0x38fc98&&_0x38fc98[_0x8be1('0x54')]===0x0){return db[_0x8be1('0x29')]['create']({'name':_0x2ba0c1[_0x8be1('0x35')],'resourceId':_0x2ba0c1['id'],'type':_0x38fc98[_0x8be1('0x35')],'sectionId':_0x38fc98['id']},{})[_0x8be1('0x26')](function(){return _0x31e0b9;});}else{return _0x31e0b9;}})[_0x8be1('0x4a')](function(_0xc01be0){logger['error'](_0x8be1('0x55'),_0xc01be0);throw _0xc01be0;});}return _0x31e0b9;})[_0x8be1('0x26')](respondWithResult(_0x52b8db,0xc9))['catch'](handleError(_0x52b8db,null));};exports[_0x8be1('0x25')]=function(_0x568978,_0xf0d535){if(_0x568978[_0x8be1('0x50')]['id']){delete _0x568978[_0x8be1('0x50')]['id'];}return db[_0x8be1('0x2f')][_0x8be1('0x4e')]({'where':{'id':_0x568978[_0x8be1('0x4c')]['id']}})[_0x8be1('0x26')](handleEntityNotFound(_0xf0d535,null))[_0x8be1('0x26')](saveUpdates(_0x568978[_0x8be1('0x50')],null))[_0x8be1('0x26')](respondWithResult(_0xf0d535,null))[_0x8be1('0x4a')](handleError(_0xf0d535,null));};exports[_0x8be1('0x27')]=function(_0x3a0f87,_0x4d08c4){return db[_0x8be1('0x2f')][_0x8be1('0x4e')]({'where':{'id':_0x3a0f87[_0x8be1('0x4c')]['id']}})[_0x8be1('0x26')](handleEntityNotFound(_0x4d08c4,null))[_0x8be1('0x26')](removeEntity(_0x4d08c4,null))[_0x8be1('0x4a')](handleError(_0x4d08c4,null));};exports['addInterval']=function(_0x27486c,_0x4b0d6c,_0x22d908){if(_0x27486c[_0x8be1('0x50')]['id']){delete _0x27486c[_0x8be1('0x50')]['id'];}return db['Interval'][_0x8be1('0x4e')]({'where':{'id':_0x27486c[_0x8be1('0x4c')]['id']}})[_0x8be1('0x26')](handleEntityNotFound(_0x4b0d6c,null))[_0x8be1('0x26')](function(_0x24eb4e){if(_0x24eb4e){_0x27486c[_0x8be1('0x50')]['IntervalId']=_0x24eb4e['id'];return db[_0x8be1('0x2f')][_0x8be1('0x4f')](_0x27486c[_0x8be1('0x50')]);}})[_0x8be1('0x26')](respondWithResult(_0x4b0d6c,null))[_0x8be1('0x4a')](handleError(_0x4b0d6c,null));};exports[_0x8be1('0x56')]=function(_0x3c64dc,_0xbfc66b,_0x17ca14){var _0x204bc8={};var _0x2c5bc7={};var _0x2aee67;var _0x43d1cd;return db[_0x8be1('0x2f')][_0x8be1('0x57')]({'where':{'id':_0x3c64dc[_0x8be1('0x4c')]['id']}})[_0x8be1('0x26')](handleEntityNotFound(_0xbfc66b,null))[_0x8be1('0x26')](function(_0x188b3c){if(_0x188b3c){_0x2aee67=_0x188b3c;_0x2c5bc7[_0x8be1('0x33')]=_[_0x8be1('0x37')](db[_0x8be1('0x2f')][_0x8be1('0x30')]);_0x2c5bc7['query']=_['keys'](_0x3c64dc[_0x8be1('0x36')]);_0x2c5bc7[_0x8be1('0x40')]=_[_0x8be1('0x4d')](_0x2c5bc7['model'],_0x2c5bc7['query']);_0x204bc8[_0x8be1('0x39')]=_[_0x8be1('0x4d')](_0x2c5bc7[_0x8be1('0x33')],qs[_0x8be1('0x38')](_0x3c64dc[_0x8be1('0x36')][_0x8be1('0x38')]));_0x204bc8['attributes']=_0x204bc8[_0x8be1('0x39')][_0x8be1('0x3a')]?_0x204bc8['attributes']:_0x2c5bc7['model'];_0x204bc8[_0x8be1('0x3d')]=qs['sort'](_0x3c64dc[_0x8be1('0x36')][_0x8be1('0x3e')]);_0x204bc8[_0x8be1('0x3f')]=qs[_0x8be1('0x40')](_[_0x8be1('0x41')](_0x3c64dc[_0x8be1('0x36')],_0x2c5bc7[_0x8be1('0x40')]));if(_0x3c64dc[_0x8be1('0x36')][_0x8be1('0x42')]){_0x204bc8['where']=_[_0x8be1('0x43')](_0x204bc8[_0x8be1('0x3f')],{'$or':_[_0x8be1('0x34')](_0x204bc8[_0x8be1('0x39')],function(_0x48c313){var _0x90bc3={};_0x90bc3[_0x48c313]={'$like':'%'+_0x3c64dc[_0x8be1('0x36')][_0x8be1('0x42')]+'%'};return _0x90bc3;})});}_0x204bc8=_[_0x8be1('0x43')]({},_0x204bc8,_0x3c64dc['options']);return _0x2aee67[_0x8be1('0x56')](_0x204bc8);}})[_0x8be1('0x26')](function(_0x535bf6){if(_0x535bf6){_0x43d1cd=_0x535bf6[_0x8be1('0x3a')];if(!_0x3c64dc['query'][_0x8be1('0x3b')]('nolimit')){_0x204bc8[_0x8be1('0x1f')]=qs[_0x8be1('0x1f')](_0x3c64dc['query'][_0x8be1('0x1f')]);_0x204bc8[_0x8be1('0x1d')]=qs[_0x8be1('0x1d')](_0x3c64dc[_0x8be1('0x36')][_0x8be1('0x1d')]);}return _0x2aee67[_0x8be1('0x56')](_0x204bc8);}})[_0x8be1('0x26')](function(_0x1294de){if(_0x1294de){return _0x1294de?{'count':_0x43d1cd,'rows':_0x1294de}:null;}})[_0x8be1('0x26')](respondWithResult(_0xbfc66b,null))['catch'](handleError(_0xbfc66b,null));};exports[_0x8be1('0x58')]=function(_0x173d96,_0x2090d7,_0x1c2951){return db[_0x8be1('0x2f')][_0x8be1('0x57')]({'where':{'id':_0x173d96['params']['id']}})[_0x8be1('0x26')](handleEntityNotFound(_0x2090d7,null))[_0x8be1('0x26')](function(_0x441a0c){if(_0x441a0c){return db[_0x8be1('0x59')][_0x8be1('0x5a')](function(_0x278660){return db[_0x8be1('0x2f')][_0x8be1('0x27')]({'where':{'IntervalId':_0x173d96[_0x8be1('0x4c')]['id']},'transaction':_0x278660})[_0x8be1('0x26')](function(_0x1b9a06){var _0x1fba3b=_[_0x8be1('0x34')](_0x173d96[_0x8be1('0x50')],function(_0x5558b2){delete _0x5558b2['id'];_0x5558b2[_0x8be1('0x5b')]=_0x173d96[_0x8be1('0x4c')]['id'];return _0x5558b2;});return db[_0x8be1('0x2f')]['bulkCreate'](_0x1fba3b,{'transaction':_0x278660});});})[_0x8be1('0x26')](function(){return db[_0x8be1('0x2f')][_0x8be1('0x48')]({'where':{'IntervalId':_0x173d96['params']['id']}});});}})[_0x8be1('0x26')](respondWithResult(_0x2090d7,null))[_0x8be1('0x4a')](handleError(_0x2090d7,null));};