Built motion from commit 598073ad.|2.5.44
[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 _0xffe9=['sox','to-csv','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','then','get','Intervals','UserProfileResource','destroy','error','stack','name','send','map','Interval','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','VIRTUAL','filter','merge','options','include','findAll','rows','keys','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','addInterval','IntervalId','getIntervals','findOne','length','order','sequelize','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util'];(function(_0x1e6763,_0x5d2711){var _0x33786d=function(_0x210ef1){while(--_0x210ef1){_0x1e6763['push'](_0x1e6763['shift']());}};_0x33786d(++_0x5d2711);}(_0xffe9,0x170));var _0x9ffe=function(_0x43f47b,_0x311636){_0x43f47b=_0x43f47b-0x0;var _0x4af9a6=_0xffe9[_0x43f47b];return _0x4af9a6;};'use strict';var emlformat=require(_0x9ffe('0x0'));var rimraf=require(_0x9ffe('0x1'));var zipdir=require(_0x9ffe('0x2'));var jsonpatch=require(_0x9ffe('0x3'));var rp=require(_0x9ffe('0x4'));var moment=require(_0x9ffe('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x9ffe('0x6'));var util=require(_0x9ffe('0x7'));var path=require('path');var sox=require(_0x9ffe('0x8'));var csv=require(_0x9ffe('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9ffe('0xa'));var _=require(_0x9ffe('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x9ffe('0xc'));var deskjs=require(_0x9ffe('0xd'));var toCsv=require(_0x9ffe('0x9'));var querystring=require('querystring');var Papa=require(_0x9ffe('0xe'));var Redis=require(_0x9ffe('0xf'));var authService=require(_0x9ffe('0x10'));var qs=require(_0x9ffe('0x11'));var as=require(_0x9ffe('0x12'));var hardwareService=require(_0x9ffe('0x13'));var logger=require(_0x9ffe('0x14'))(_0x9ffe('0x15'));var utils=require(_0x9ffe('0x16'));var config=require(_0x9ffe('0x17'));var licenseUtil=require(_0x9ffe('0x18'));var db=require(_0x9ffe('0x19'))['db'];var extensions=require(_0x9ffe('0x1a'));function respondWithStatusCode(_0xc2449,_0x4320f4){_0x4320f4=_0x4320f4||0xcc;return function(_0x4a4376){if(_0x4a4376){return _0xc2449[_0x9ffe('0x1b')](_0x4320f4);}return _0xc2449[_0x9ffe('0x1c')](_0x4320f4)[_0x9ffe('0x1d')]();};}function respondWithResult(_0xf5a8a9,_0x116cbe){_0x116cbe=_0x116cbe||0xc8;return function(_0x48d96a){if(_0x48d96a){return _0xf5a8a9[_0x9ffe('0x1c')](_0x116cbe)['json'](_0x48d96a);}};}function respondWithFilteredResult(_0x3148a5,_0x3049d0){return function(_0x539fd8){if(_0x539fd8){var _0x2b8afb=typeof _0x3049d0[_0x9ffe('0x1e')]===_0x9ffe('0x1f')&&typeof _0x3049d0['limit']===_0x9ffe('0x1f');var _0x37a289=_0x539fd8[_0x9ffe('0x20')];var _0x232738=_0x2b8afb?0x0:_0x3049d0['offset'];var _0xd72691=_0x2b8afb?_0x539fd8['count']:_0x3049d0[_0x9ffe('0x1e')]+_0x3049d0[_0x9ffe('0x21')];var _0x5d8167;if(_0xd72691>=_0x37a289){_0xd72691=_0x37a289;_0x5d8167=0xc8;}else{_0x5d8167=0xce;}_0x3148a5[_0x9ffe('0x1c')](_0x5d8167);return _0x3148a5[_0x9ffe('0x22')](_0x9ffe('0x23'),_0x232738+'-'+_0xd72691+'/'+_0x37a289)[_0x9ffe('0x24')](_0x539fd8);}return null;};}function patchUpdates(_0x144fae){return function(_0x496316){try{jsonpatch[_0x9ffe('0x25')](_0x496316,_0x144fae,!![]);}catch(_0x2c722b){return BPromise[_0x9ffe('0x26')](_0x2c722b);}return _0x496316['save']();};}function saveUpdates(_0x4cfb0e,_0x29b570){return function(_0x2b40cd){if(_0x2b40cd){return _0x2b40cd['update'](_0x4cfb0e)[_0x9ffe('0x27')](function(_0x5617d3){return _0x5617d3;});}return null;};}function removeEntity(_0xbf6944,_0x145368){return function(_0xd8f65c){if(_0xd8f65c){return _0xd8f65c['destroy']()['then'](function(){var _0x669875=_0xd8f65c[_0x9ffe('0x28')]({'plain':!![]});var _0x2c5ced=_0x9ffe('0x29');return db[_0x9ffe('0x2a')][_0x9ffe('0x2b')]({'where':{'type':_0x2c5ced,'resourceId':_0x669875['id']}})['then'](function(){return _0xd8f65c;});})[_0x9ffe('0x27')](function(){_0xbf6944[_0x9ffe('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x711fa8,_0x203ca3){return function(_0x556db3){if(!_0x556db3){_0x711fa8[_0x9ffe('0x1b')](0x194);}return _0x556db3;};}function handleError(_0x4a87ba,_0x5e5950){_0x5e5950=_0x5e5950||0x1f4;return function(_0x534289){logger[_0x9ffe('0x2c')](_0x534289[_0x9ffe('0x2d')]);if(_0x534289[_0x9ffe('0x2e')]){delete _0x534289[_0x9ffe('0x2e')];}_0x4a87ba[_0x9ffe('0x1c')](_0x5e5950)[_0x9ffe('0x2f')](_0x534289);};}exports['index']=function(_0x443fde,_0x3596f7){var _0xcf730c={},_0x5b3989={},_0x2ca6cf={'count':0x0,'rows':[]};var _0x3b26d6=_[_0x9ffe('0x30')](db[_0x9ffe('0x31')][_0x9ffe('0x32')],function(_0xbd4ec){return{'name':_0xbd4ec['fieldName'],'type':_0xbd4ec[_0x9ffe('0x33')][_0x9ffe('0x34')]};});_0x5b3989[_0x9ffe('0x35')]=_[_0x9ffe('0x30')](_0x3b26d6,_0x9ffe('0x2e'));_0x5b3989[_0x9ffe('0x36')]=_['keys'](_0x443fde[_0x9ffe('0x36')]);_0x5b3989[_0x9ffe('0x37')]=_[_0x9ffe('0x38')](_0x5b3989[_0x9ffe('0x35')],_0x5b3989['query']);_0xcf730c[_0x9ffe('0x39')]=_[_0x9ffe('0x38')](_0x5b3989[_0x9ffe('0x35')],qs['fields'](_0x443fde[_0x9ffe('0x36')][_0x9ffe('0x3a')]));_0xcf730c['attributes']=_0xcf730c[_0x9ffe('0x39')]['length']?_0xcf730c[_0x9ffe('0x39')]:_0x5b3989[_0x9ffe('0x35')];if(!_0x443fde[_0x9ffe('0x36')][_0x9ffe('0x3b')](_0x9ffe('0x3c'))){_0xcf730c[_0x9ffe('0x21')]=qs[_0x9ffe('0x21')](_0x443fde[_0x9ffe('0x36')][_0x9ffe('0x21')]);_0xcf730c[_0x9ffe('0x1e')]=qs['offset'](_0x443fde[_0x9ffe('0x36')][_0x9ffe('0x1e')]);}_0xcf730c['order']=qs[_0x9ffe('0x3d')](_0x443fde[_0x9ffe('0x36')][_0x9ffe('0x3d')]);_0xcf730c[_0x9ffe('0x3e')]=qs['filters'](_[_0x9ffe('0x3f')](_0x443fde['query'],_0x5b3989[_0x9ffe('0x37')]),_0x3b26d6);if(_0x443fde['query']['filter']){_0xcf730c[_0x9ffe('0x3e')]=_['merge'](_0xcf730c['where'],{'$or':_[_0x9ffe('0x30')](_0x3b26d6,function(_0x4d0b18){if(_0x4d0b18[_0x9ffe('0x33')]!==_0x9ffe('0x40')){var _0xde29e0={};_0xde29e0[_0x4d0b18['name']]={'$like':'%'+_0x443fde[_0x9ffe('0x36')][_0x9ffe('0x41')]+'%'};return _0xde29e0;}})});}_0xcf730c=_[_0x9ffe('0x42')]({},_0xcf730c,_0x443fde[_0x9ffe('0x43')]);var _0x40d7af={'where':_0xcf730c[_0x9ffe('0x3e')]};return db[_0x9ffe('0x31')][_0x9ffe('0x20')](_0x40d7af)[_0x9ffe('0x27')](function(_0x2026d2){_0x2ca6cf['count']=_0x2026d2;if(_0x443fde[_0x9ffe('0x36')]['includeAll']){_0xcf730c[_0x9ffe('0x44')]=[{'all':!![]}];}return db[_0x9ffe('0x31')][_0x9ffe('0x45')](_0xcf730c);})[_0x9ffe('0x27')](function(_0x177efa){_0x2ca6cf[_0x9ffe('0x46')]=_0x177efa;return _0x2ca6cf;})[_0x9ffe('0x27')](respondWithFilteredResult(_0x3596f7,_0xcf730c))['catch'](handleError(_0x3596f7,null));};exports['show']=function(_0x124240,_0x2c9f7b){var _0xcedf44={'raw':!![],'where':{'id':_0x124240['params']['id']}},_0x2287dd={};_0x2287dd[_0x9ffe('0x35')]=_[_0x9ffe('0x47')](db[_0x9ffe('0x31')][_0x9ffe('0x32')]);_0x2287dd['query']=_['keys'](_0x124240[_0x9ffe('0x36')]);_0x2287dd['filters']=_['intersection'](_0x2287dd[_0x9ffe('0x35')],_0x2287dd[_0x9ffe('0x36')]);_0xcedf44[_0x9ffe('0x39')]=_[_0x9ffe('0x38')](_0x2287dd[_0x9ffe('0x35')],qs[_0x9ffe('0x3a')](_0x124240[_0x9ffe('0x36')]['fields']));_0xcedf44[_0x9ffe('0x39')]=_0xcedf44['attributes']['length']?_0xcedf44[_0x9ffe('0x39')]:_0x2287dd['model'];if(_0x124240[_0x9ffe('0x36')][_0x9ffe('0x48')]){_0xcedf44[_0x9ffe('0x44')]=[{'all':!![]}];}_0xcedf44=_[_0x9ffe('0x42')]({},_0xcedf44,_0x124240['options']);return db[_0x9ffe('0x31')][_0x9ffe('0x49')](_0xcedf44)[_0x9ffe('0x27')](handleEntityNotFound(_0x2c9f7b,null))['then'](respondWithResult(_0x2c9f7b,null))['catch'](handleError(_0x2c9f7b,null));};exports['create']=function(_0x463f99,_0x1fabfb){return db['Interval'][_0x9ffe('0x4a')](_0x463f99[_0x9ffe('0x4b')],{})['then'](function(_0x11decb){var _0x319fca=_0x463f99['user'][_0x9ffe('0x28')]({'plain':!![]});if(!_0x319fca)throw new Error(_0x9ffe('0x4c'));if(_0x319fca[_0x9ffe('0x4d')]===_0x9ffe('0x4e')){var _0x36cfd2=_0x11decb['get']({'plain':!![]});var _0x3c8757='Intervals';return db[_0x9ffe('0x4f')]['find']({'where':{'name':_0x3c8757,'userProfileId':_0x319fca[_0x9ffe('0x50')]},'raw':!![]})[_0x9ffe('0x27')](function(_0xa5943a){if(_0xa5943a&&_0xa5943a[_0x9ffe('0x51')]===0x0){return db[_0x9ffe('0x2a')][_0x9ffe('0x4a')]({'name':_0x36cfd2['name'],'resourceId':_0x36cfd2['id'],'type':_0xa5943a['name'],'sectionId':_0xa5943a['id']},{})[_0x9ffe('0x27')](function(){return _0x11decb;});}else{return _0x11decb;}})[_0x9ffe('0x52')](function(_0xf6d327){logger[_0x9ffe('0x2c')](_0x9ffe('0x53'),_0xf6d327);throw _0xf6d327;});}return _0x11decb;})['then'](respondWithResult(_0x1fabfb,0xc9))[_0x9ffe('0x52')](handleError(_0x1fabfb,null));};exports[_0x9ffe('0x54')]=function(_0x5823ee,_0x333647){if(_0x5823ee['body']['id']){delete _0x5823ee[_0x9ffe('0x4b')]['id'];}return db[_0x9ffe('0x31')]['find']({'where':{'id':_0x5823ee['params']['id']}})['then'](handleEntityNotFound(_0x333647,null))['then'](saveUpdates(_0x5823ee[_0x9ffe('0x4b')],null))['then'](respondWithResult(_0x333647,null))[_0x9ffe('0x52')](handleError(_0x333647,null));};exports[_0x9ffe('0x2b')]=function(_0x1a822a,_0x230e0a){return db[_0x9ffe('0x31')][_0x9ffe('0x49')]({'where':{'id':_0x1a822a[_0x9ffe('0x55')]['id']}})['then'](handleEntityNotFound(_0x230e0a,null))['then'](removeEntity(_0x230e0a,null))[_0x9ffe('0x52')](handleError(_0x230e0a,null));};exports[_0x9ffe('0x56')]=function(_0x1f3e75,_0x57090f,_0xf6cd1){if(_0x1f3e75[_0x9ffe('0x4b')]['id']){delete _0x1f3e75[_0x9ffe('0x4b')]['id'];}return db[_0x9ffe('0x31')]['find']({'where':{'id':_0x1f3e75[_0x9ffe('0x55')]['id']}})[_0x9ffe('0x27')](handleEntityNotFound(_0x57090f,null))[_0x9ffe('0x27')](function(_0x9bd67b){if(_0x9bd67b){_0x1f3e75[_0x9ffe('0x4b')][_0x9ffe('0x57')]=_0x9bd67b['id'];return db[_0x9ffe('0x31')][_0x9ffe('0x4a')](_0x1f3e75[_0x9ffe('0x4b')]);}})[_0x9ffe('0x27')](respondWithResult(_0x57090f,null))[_0x9ffe('0x52')](handleError(_0x57090f,null));};exports[_0x9ffe('0x58')]=function(_0x14bb83,_0x68c4e,_0x27276b){var _0x174189={};var _0x15c454={};var _0x15ffc1;var _0x214cec;return db[_0x9ffe('0x31')][_0x9ffe('0x59')]({'where':{'id':_0x14bb83[_0x9ffe('0x55')]['id']}})[_0x9ffe('0x27')](handleEntityNotFound(_0x68c4e,null))['then'](function(_0x414363){if(_0x414363){_0x15ffc1=_0x414363;_0x15c454['model']=_['keys'](db[_0x9ffe('0x31')][_0x9ffe('0x32')]);_0x15c454['query']=_[_0x9ffe('0x47')](_0x14bb83[_0x9ffe('0x36')]);_0x15c454[_0x9ffe('0x37')]=_[_0x9ffe('0x38')](_0x15c454[_0x9ffe('0x35')],_0x15c454['query']);_0x174189['attributes']=_['intersection'](_0x15c454['model'],qs[_0x9ffe('0x3a')](_0x14bb83[_0x9ffe('0x36')]['fields']));_0x174189[_0x9ffe('0x39')]=_0x174189['attributes'][_0x9ffe('0x5a')]?_0x174189[_0x9ffe('0x39')]:_0x15c454[_0x9ffe('0x35')];_0x174189[_0x9ffe('0x5b')]=qs[_0x9ffe('0x3d')](_0x14bb83[_0x9ffe('0x36')][_0x9ffe('0x3d')]);_0x174189[_0x9ffe('0x3e')]=qs['filters'](_[_0x9ffe('0x3f')](_0x14bb83['query'],_0x15c454[_0x9ffe('0x37')]));if(_0x14bb83['query'][_0x9ffe('0x41')]){_0x174189[_0x9ffe('0x3e')]=_[_0x9ffe('0x42')](_0x174189['where'],{'$or':_[_0x9ffe('0x30')](_0x174189[_0x9ffe('0x39')],function(_0xb7cce3){var _0x2775e9={};_0x2775e9[_0xb7cce3]={'$like':'%'+_0x14bb83[_0x9ffe('0x36')]['filter']+'%'};return _0x2775e9;})});}_0x174189=_[_0x9ffe('0x42')]({},_0x174189,_0x14bb83['options']);return _0x15ffc1[_0x9ffe('0x58')](_0x174189);}})[_0x9ffe('0x27')](function(_0x56eadf){if(_0x56eadf){_0x214cec=_0x56eadf[_0x9ffe('0x5a')];if(!_0x14bb83[_0x9ffe('0x36')]['hasOwnProperty'](_0x9ffe('0x3c'))){_0x174189[_0x9ffe('0x21')]=qs[_0x9ffe('0x21')](_0x14bb83['query']['limit']);_0x174189[_0x9ffe('0x1e')]=qs['offset'](_0x14bb83['query']['offset']);}return _0x15ffc1[_0x9ffe('0x58')](_0x174189);}})[_0x9ffe('0x27')](function(_0x286dbd){if(_0x286dbd){return _0x286dbd?{'count':_0x214cec,'rows':_0x286dbd}:null;}})[_0x9ffe('0x27')](respondWithResult(_0x68c4e,null))[_0x9ffe('0x52')](handleError(_0x68c4e,null));};exports['addIntervals']=function(_0x41ee,_0x30ded4,_0x4aca5c){return db['Interval'][_0x9ffe('0x59')]({'where':{'id':_0x41ee[_0x9ffe('0x55')]['id']}})[_0x9ffe('0x27')](handleEntityNotFound(_0x30ded4,null))[_0x9ffe('0x27')](function(_0x454675){if(_0x454675){return db[_0x9ffe('0x5c')]['transaction'](function(_0x24b704){return db[_0x9ffe('0x31')][_0x9ffe('0x2b')]({'where':{'IntervalId':_0x41ee[_0x9ffe('0x55')]['id']},'transaction':_0x24b704})[_0x9ffe('0x27')](function(_0x1e999f){var _0x237098=_['map'](_0x41ee[_0x9ffe('0x4b')],function(_0x580d8c){delete _0x580d8c['id'];_0x580d8c[_0x9ffe('0x57')]=_0x41ee[_0x9ffe('0x55')]['id'];return _0x580d8c;});return db[_0x9ffe('0x31')][_0x9ffe('0x5d')](_0x237098,{'transaction':_0x24b704});});})[_0x9ffe('0x27')](function(){return db[_0x9ffe('0x31')][_0x9ffe('0x45')]({'where':{'IntervalId':_0x41ee['params']['id']}});});}})[_0x9ffe('0x27')](respondWithResult(_0x30ded4,null))['catch'](handleError(_0x30ded4,null));};