Built motion from commit 9d7072cc.|2.5.39
[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 _0xcdd2=['includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','getIntervals','pick','nolimit','addIntervals','findOne','transaction','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','destroy','get','Intervals','error','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','merge','where','VIRTUAL','filter','options','Interval','include','findAll','catch','show','params','keys'];(function(_0x50aa41,_0x2ff142){var _0x1f060b=function(_0x3c9a87){while(--_0x3c9a87){_0x50aa41['push'](_0x50aa41['shift']());}};_0x1f060b(++_0x2ff142);}(_0xcdd2,0x1e9));var _0x2cdd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcdd2[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x2cdd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2cdd('0x1'));var jsonpatch=require(_0x2cdd('0x2'));var rp=require('request-promise');var moment=require(_0x2cdd('0x3'));var BPromise=require(_0x2cdd('0x4'));var Mustache=require(_0x2cdd('0x5'));var util=require(_0x2cdd('0x6'));var path=require(_0x2cdd('0x7'));var sox=require(_0x2cdd('0x8'));var csv=require('to-csv');var ejs=require(_0x2cdd('0x9'));var fs=require('fs');var fs_extra=require(_0x2cdd('0xa'));var _=require(_0x2cdd('0xb'));var squel=require(_0x2cdd('0xc'));var crypto=require('crypto');var jsforce=require(_0x2cdd('0xd'));var deskjs=require(_0x2cdd('0xe'));var toCsv=require(_0x2cdd('0xf'));var querystring=require(_0x2cdd('0x10'));var Papa=require('papaparse');var Redis=require(_0x2cdd('0x11'));var authService=require(_0x2cdd('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x2cdd('0x13'));var hardwareService=require(_0x2cdd('0x14'));var logger=require(_0x2cdd('0x15'))(_0x2cdd('0x16'));var utils=require(_0x2cdd('0x17'));var config=require(_0x2cdd('0x18'));var licenseUtil=require(_0x2cdd('0x19'));var db=require(_0x2cdd('0x1a'))['db'];var extensions=require(_0x2cdd('0x1b'));function respondWithStatusCode(_0x363726,_0x2c6a5d){_0x2c6a5d=_0x2c6a5d||0xcc;return function(_0xc466e9){if(_0xc466e9){return _0x363726[_0x2cdd('0x1c')](_0x2c6a5d);}return _0x363726[_0x2cdd('0x1d')](_0x2c6a5d)[_0x2cdd('0x1e')]();};}function respondWithResult(_0x301c96,_0x1cd0a3){_0x1cd0a3=_0x1cd0a3||0xc8;return function(_0x3c5ffa){if(_0x3c5ffa){return _0x301c96[_0x2cdd('0x1d')](_0x1cd0a3)[_0x2cdd('0x1f')](_0x3c5ffa);}};}function respondWithFilteredResult(_0x22fcd3,_0xb0a1ec){return function(_0x47c99a){if(_0x47c99a){var _0x27bf6d=typeof _0xb0a1ec[_0x2cdd('0x20')]===_0x2cdd('0x21')&&typeof _0xb0a1ec[_0x2cdd('0x22')]==='undefined';var _0xad562=_0x47c99a[_0x2cdd('0x23')];var _0x3c708b=_0x27bf6d?0x0:_0xb0a1ec[_0x2cdd('0x20')];var _0x5cbaa6=_0x27bf6d?_0x47c99a[_0x2cdd('0x23')]:_0xb0a1ec[_0x2cdd('0x20')]+_0xb0a1ec[_0x2cdd('0x22')];var _0x10e977;if(_0x5cbaa6>=_0xad562){_0x5cbaa6=_0xad562;_0x10e977=0xc8;}else{_0x10e977=0xce;}_0x22fcd3[_0x2cdd('0x1d')](_0x10e977);return _0x22fcd3[_0x2cdd('0x24')]('Content-Range',_0x3c708b+'-'+_0x5cbaa6+'/'+_0xad562)[_0x2cdd('0x1f')](_0x47c99a);}return null;};}function patchUpdates(_0x5c9aa8){return function(_0x34a9ad){try{jsonpatch[_0x2cdd('0x25')](_0x34a9ad,_0x5c9aa8,!![]);}catch(_0x3a082e){return BPromise['reject'](_0x3a082e);}return _0x34a9ad[_0x2cdd('0x26')]();};}function saveUpdates(_0x28c324,_0x1ee571){return function(_0x5dcba4){if(_0x5dcba4){return _0x5dcba4[_0x2cdd('0x27')](_0x28c324)[_0x2cdd('0x28')](function(_0x5a4066){return _0x5a4066;});}return null;};}function removeEntity(_0x2729eb,_0x3d6997){return function(_0x170a4b){if(_0x170a4b){return _0x170a4b[_0x2cdd('0x29')]()[_0x2cdd('0x28')](function(){var _0x3612bb=_0x170a4b[_0x2cdd('0x2a')]({'plain':!![]});var _0x5e2b65=_0x2cdd('0x2b');return db['UserProfileResource'][_0x2cdd('0x29')]({'where':{'type':_0x5e2b65,'resourceId':_0x3612bb['id']}})[_0x2cdd('0x28')](function(){return _0x170a4b;});})[_0x2cdd('0x28')](function(){_0x2729eb['status'](0xcc)[_0x2cdd('0x1e')]();});}};}function handleEntityNotFound(_0x359fd1,_0x3ec47e){return function(_0x3b0651){if(!_0x3b0651){_0x359fd1[_0x2cdd('0x1c')](0x194);}return _0x3b0651;};}function handleError(_0x36a760,_0x39df2d){_0x39df2d=_0x39df2d||0x1f4;return function(_0x527f02){logger[_0x2cdd('0x2c')](_0x527f02['stack']);if(_0x527f02[_0x2cdd('0x2d')]){delete _0x527f02[_0x2cdd('0x2d')];}_0x36a760[_0x2cdd('0x1d')](_0x39df2d)[_0x2cdd('0x2e')](_0x527f02);};}exports[_0x2cdd('0x2f')]=function(_0x4445f8,_0x5a64c6){var _0x4d71fb={},_0x165a8a={},_0x5ddf8c={'count':0x0,'rows':[]};var _0x5c38ec=_[_0x2cdd('0x30')](db['Interval'][_0x2cdd('0x31')],function(_0x27b52b){return{'name':_0x27b52b[_0x2cdd('0x32')],'type':_0x27b52b[_0x2cdd('0x33')][_0x2cdd('0x34')]};});_0x165a8a[_0x2cdd('0x35')]=_[_0x2cdd('0x30')](_0x5c38ec,_0x2cdd('0x2d'));_0x165a8a[_0x2cdd('0x36')]=_['keys'](_0x4445f8[_0x2cdd('0x36')]);_0x165a8a[_0x2cdd('0x37')]=_[_0x2cdd('0x38')](_0x165a8a['model'],_0x165a8a['query']);_0x4d71fb[_0x2cdd('0x39')]=_[_0x2cdd('0x38')](_0x165a8a[_0x2cdd('0x35')],qs[_0x2cdd('0x3a')](_0x4445f8['query'][_0x2cdd('0x3a')]));_0x4d71fb[_0x2cdd('0x39')]=_0x4d71fb['attributes'][_0x2cdd('0x3b')]?_0x4d71fb[_0x2cdd('0x39')]:_0x165a8a[_0x2cdd('0x35')];if(!_0x4445f8[_0x2cdd('0x36')][_0x2cdd('0x3c')]('nolimit')){_0x4d71fb['limit']=qs[_0x2cdd('0x22')](_0x4445f8['query'][_0x2cdd('0x22')]);_0x4d71fb[_0x2cdd('0x20')]=qs['offset'](_0x4445f8[_0x2cdd('0x36')]['offset']);}_0x4d71fb[_0x2cdd('0x3d')]=qs[_0x2cdd('0x3e')](_0x4445f8['query'][_0x2cdd('0x3e')]);_0x4d71fb['where']=qs['filters'](_['pick'](_0x4445f8[_0x2cdd('0x36')],_0x165a8a[_0x2cdd('0x37')]),_0x5c38ec);if(_0x4445f8['query']['filter']){_0x4d71fb['where']=_[_0x2cdd('0x3f')](_0x4d71fb[_0x2cdd('0x40')],{'$or':_[_0x2cdd('0x30')](_0x5c38ec,function(_0x4e54d2){if(_0x4e54d2[_0x2cdd('0x33')]!==_0x2cdd('0x41')){var _0x57e673={};_0x57e673[_0x4e54d2[_0x2cdd('0x2d')]]={'$like':'%'+_0x4445f8['query'][_0x2cdd('0x42')]+'%'};return _0x57e673;}})});}_0x4d71fb=_['merge']({},_0x4d71fb,_0x4445f8[_0x2cdd('0x43')]);var _0x579b3a={'where':_0x4d71fb[_0x2cdd('0x40')]};return db[_0x2cdd('0x44')][_0x2cdd('0x23')](_0x579b3a)['then'](function(_0x3cf9b1){_0x5ddf8c[_0x2cdd('0x23')]=_0x3cf9b1;if(_0x4445f8['query']['includeAll']){_0x4d71fb[_0x2cdd('0x45')]=[{'all':!![]}];}return db['Interval'][_0x2cdd('0x46')](_0x4d71fb);})[_0x2cdd('0x28')](function(_0x336800){_0x5ddf8c['rows']=_0x336800;return _0x5ddf8c;})[_0x2cdd('0x28')](respondWithFilteredResult(_0x5a64c6,_0x4d71fb))[_0x2cdd('0x47')](handleError(_0x5a64c6,null));};exports[_0x2cdd('0x48')]=function(_0x185571,_0xae99f8){var _0x2cd6d3={'raw':!![],'where':{'id':_0x185571[_0x2cdd('0x49')]['id']}},_0x35adb8={};_0x35adb8[_0x2cdd('0x35')]=_[_0x2cdd('0x4a')](db[_0x2cdd('0x44')][_0x2cdd('0x31')]);_0x35adb8['query']=_[_0x2cdd('0x4a')](_0x185571[_0x2cdd('0x36')]);_0x35adb8[_0x2cdd('0x37')]=_[_0x2cdd('0x38')](_0x35adb8['model'],_0x35adb8['query']);_0x2cd6d3[_0x2cdd('0x39')]=_[_0x2cdd('0x38')](_0x35adb8[_0x2cdd('0x35')],qs[_0x2cdd('0x3a')](_0x185571[_0x2cdd('0x36')][_0x2cdd('0x3a')]));_0x2cd6d3[_0x2cdd('0x39')]=_0x2cd6d3[_0x2cdd('0x39')][_0x2cdd('0x3b')]?_0x2cd6d3[_0x2cdd('0x39')]:_0x35adb8['model'];if(_0x185571[_0x2cdd('0x36')][_0x2cdd('0x4b')]){_0x2cd6d3['include']=[{'all':!![]}];}_0x2cd6d3=_[_0x2cdd('0x3f')]({},_0x2cd6d3,_0x185571[_0x2cdd('0x43')]);return db[_0x2cdd('0x44')]['find'](_0x2cd6d3)['then'](handleEntityNotFound(_0xae99f8,null))['then'](respondWithResult(_0xae99f8,null))[_0x2cdd('0x47')](handleError(_0xae99f8,null));};exports['create']=function(_0xfacaf7,_0x2eace1){return db[_0x2cdd('0x44')][_0x2cdd('0x4c')](_0xfacaf7[_0x2cdd('0x4d')],{})[_0x2cdd('0x28')](function(_0xa2f7e8){var _0x36ddd9=_0xfacaf7[_0x2cdd('0x4e')]['get']({'plain':!![]});if(!_0x36ddd9)throw new Error(_0x2cdd('0x4f'));if(_0x36ddd9[_0x2cdd('0x50')]===_0x2cdd('0x4e')){var _0x290b59=_0xa2f7e8[_0x2cdd('0x2a')]({'plain':!![]});var _0x5972a7=_0x2cdd('0x2b');return db[_0x2cdd('0x51')][_0x2cdd('0x52')]({'where':{'name':_0x5972a7,'userProfileId':_0x36ddd9[_0x2cdd('0x53')]},'raw':!![]})[_0x2cdd('0x28')](function(_0x20f0a6){if(_0x20f0a6&&_0x20f0a6[_0x2cdd('0x54')]===0x0){return db['UserProfileResource'][_0x2cdd('0x4c')]({'name':_0x290b59[_0x2cdd('0x2d')],'resourceId':_0x290b59['id'],'type':_0x20f0a6[_0x2cdd('0x2d')],'sectionId':_0x20f0a6['id']},{})[_0x2cdd('0x28')](function(){return _0xa2f7e8;});}else{return _0xa2f7e8;}})[_0x2cdd('0x47')](function(_0x22b70b){logger[_0x2cdd('0x2c')](_0x2cdd('0x55'),_0x22b70b);throw _0x22b70b;});}return _0xa2f7e8;})['then'](respondWithResult(_0x2eace1,0xc9))[_0x2cdd('0x47')](handleError(_0x2eace1,null));};exports[_0x2cdd('0x27')]=function(_0x16dbd6,_0x4d3f03){if(_0x16dbd6[_0x2cdd('0x4d')]['id']){delete _0x16dbd6[_0x2cdd('0x4d')]['id'];}return db[_0x2cdd('0x44')][_0x2cdd('0x52')]({'where':{'id':_0x16dbd6['params']['id']}})['then'](handleEntityNotFound(_0x4d3f03,null))[_0x2cdd('0x28')](saveUpdates(_0x16dbd6[_0x2cdd('0x4d')],null))[_0x2cdd('0x28')](respondWithResult(_0x4d3f03,null))[_0x2cdd('0x47')](handleError(_0x4d3f03,null));};exports[_0x2cdd('0x29')]=function(_0xc75eeb,_0xd50f9){return db[_0x2cdd('0x44')][_0x2cdd('0x52')]({'where':{'id':_0xc75eeb['params']['id']}})[_0x2cdd('0x28')](handleEntityNotFound(_0xd50f9,null))['then'](removeEntity(_0xd50f9,null))[_0x2cdd('0x47')](handleError(_0xd50f9,null));};exports[_0x2cdd('0x56')]=function(_0x2c9266,_0x53304f,_0x4fc0da){if(_0x2c9266[_0x2cdd('0x4d')]['id']){delete _0x2c9266[_0x2cdd('0x4d')]['id'];}return db[_0x2cdd('0x44')][_0x2cdd('0x52')]({'where':{'id':_0x2c9266[_0x2cdd('0x49')]['id']}})[_0x2cdd('0x28')](handleEntityNotFound(_0x53304f,null))['then'](function(_0x3bfe69){if(_0x3bfe69){_0x2c9266[_0x2cdd('0x4d')][_0x2cdd('0x57')]=_0x3bfe69['id'];return db[_0x2cdd('0x44')][_0x2cdd('0x4c')](_0x2c9266['body']);}})[_0x2cdd('0x28')](respondWithResult(_0x53304f,null))[_0x2cdd('0x47')](handleError(_0x53304f,null));};exports[_0x2cdd('0x58')]=function(_0x16a7eb,_0x315a79,_0x3fcc2b){var _0x46ec77={};var _0x16ebee={};var _0xd1ac09;var _0x430b05;return db[_0x2cdd('0x44')]['findOne']({'where':{'id':_0x16a7eb['params']['id']}})[_0x2cdd('0x28')](handleEntityNotFound(_0x315a79,null))[_0x2cdd('0x28')](function(_0x3802ce){if(_0x3802ce){_0xd1ac09=_0x3802ce;_0x16ebee[_0x2cdd('0x35')]=_[_0x2cdd('0x4a')](db[_0x2cdd('0x44')][_0x2cdd('0x31')]);_0x16ebee[_0x2cdd('0x36')]=_['keys'](_0x16a7eb[_0x2cdd('0x36')]);_0x16ebee[_0x2cdd('0x37')]=_[_0x2cdd('0x38')](_0x16ebee[_0x2cdd('0x35')],_0x16ebee[_0x2cdd('0x36')]);_0x46ec77[_0x2cdd('0x39')]=_[_0x2cdd('0x38')](_0x16ebee['model'],qs[_0x2cdd('0x3a')](_0x16a7eb[_0x2cdd('0x36')]['fields']));_0x46ec77['attributes']=_0x46ec77[_0x2cdd('0x39')][_0x2cdd('0x3b')]?_0x46ec77[_0x2cdd('0x39')]:_0x16ebee[_0x2cdd('0x35')];_0x46ec77[_0x2cdd('0x3d')]=qs['sort'](_0x16a7eb[_0x2cdd('0x36')][_0x2cdd('0x3e')]);_0x46ec77['where']=qs['filters'](_[_0x2cdd('0x59')](_0x16a7eb[_0x2cdd('0x36')],_0x16ebee[_0x2cdd('0x37')]));if(_0x16a7eb[_0x2cdd('0x36')][_0x2cdd('0x42')]){_0x46ec77[_0x2cdd('0x40')]=_[_0x2cdd('0x3f')](_0x46ec77['where'],{'$or':_[_0x2cdd('0x30')](_0x46ec77['attributes'],function(_0x3af8b9){var _0x1279cf={};_0x1279cf[_0x3af8b9]={'$like':'%'+_0x16a7eb[_0x2cdd('0x36')][_0x2cdd('0x42')]+'%'};return _0x1279cf;})});}_0x46ec77=_[_0x2cdd('0x3f')]({},_0x46ec77,_0x16a7eb[_0x2cdd('0x43')]);return _0xd1ac09['getIntervals'](_0x46ec77);}})[_0x2cdd('0x28')](function(_0x35614d){if(_0x35614d){_0x430b05=_0x35614d[_0x2cdd('0x3b')];if(!_0x16a7eb[_0x2cdd('0x36')]['hasOwnProperty'](_0x2cdd('0x5a'))){_0x46ec77['limit']=qs[_0x2cdd('0x22')](_0x16a7eb['query'][_0x2cdd('0x22')]);_0x46ec77[_0x2cdd('0x20')]=qs[_0x2cdd('0x20')](_0x16a7eb[_0x2cdd('0x36')][_0x2cdd('0x20')]);}return _0xd1ac09[_0x2cdd('0x58')](_0x46ec77);}})[_0x2cdd('0x28')](function(_0x26f971){if(_0x26f971){return _0x26f971?{'count':_0x430b05,'rows':_0x26f971}:null;}})['then'](respondWithResult(_0x315a79,null))[_0x2cdd('0x47')](handleError(_0x315a79,null));};exports[_0x2cdd('0x5b')]=function(_0x513ac7,_0x5677c5,_0x370493){return db[_0x2cdd('0x44')][_0x2cdd('0x5c')]({'where':{'id':_0x513ac7[_0x2cdd('0x49')]['id']}})[_0x2cdd('0x28')](handleEntityNotFound(_0x5677c5,null))[_0x2cdd('0x28')](function(_0x456920){if(_0x456920){return db['sequelize'][_0x2cdd('0x5d')](function(_0x213682){return db[_0x2cdd('0x44')][_0x2cdd('0x29')]({'where':{'IntervalId':_0x513ac7[_0x2cdd('0x49')]['id']},'transaction':_0x213682})[_0x2cdd('0x28')](function(_0x4a8754){var _0x40d151=_[_0x2cdd('0x30')](_0x513ac7['body'],function(_0x476387){delete _0x476387['id'];_0x476387[_0x2cdd('0x57')]=_0x513ac7[_0x2cdd('0x49')]['id'];return _0x476387;});return db[_0x2cdd('0x44')]['bulkCreate'](_0x40d151,{'transaction':_0x213682});});})['then'](function(){return db['Interval'][_0x2cdd('0x46')]({'where':{'IntervalId':_0x513ac7[_0x2cdd('0x49')]['id']}});});}})[_0x2cdd('0x28')](respondWithResult(_0x5677c5,null))[_0x2cdd('0x47')](handleError(_0x5677c5,null));};