554f196c951ed938571aa5eaecbc8af70a2af4d2
[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 _0x4c80=['intersection','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Intervals','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getIntervals','findOne','order','sequelize','IntervalId','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','key','model','keys','filters','query','attributes'];(function(_0x1d02e9,_0x4c617a){var _0x230e1c=function(_0x191518){while(--_0x191518){_0x1d02e9['push'](_0x1d02e9['shift']());}};_0x230e1c(++_0x4c617a);}(_0x4c80,0x7b));var _0x04c8=function(_0x44bcb0,_0x235aa9){_0x44bcb0=_0x44bcb0-0x0;var _0xfaf881=_0x4c80[_0x44bcb0];return _0xfaf881;};'use strict';var emlformat=require(_0x04c8('0x0'));var rimraf=require(_0x04c8('0x1'));var zipdir=require(_0x04c8('0x2'));var jsonpatch=require(_0x04c8('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x04c8('0x4'));var Mustache=require(_0x04c8('0x5'));var util=require('util');var path=require('path');var sox=require(_0x04c8('0x6'));var csv=require(_0x04c8('0x7'));var ejs=require(_0x04c8('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x04c8('0x9'));var squel=require(_0x04c8('0xa'));var crypto=require(_0x04c8('0xb'));var jsforce=require(_0x04c8('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x04c8('0x7'));var querystring=require(_0x04c8('0xd'));var Papa=require(_0x04c8('0xe'));var Redis=require(_0x04c8('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x04c8('0x10'));var as=require(_0x04c8('0x11'));var hardwareService=require(_0x04c8('0x12'));var logger=require('../../config/logger')(_0x04c8('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x04c8('0x14'));var db=require(_0x04c8('0x15'))['db'];var extensions=require(_0x04c8('0x16'));function respondWithStatusCode(_0x569c79,_0x453bd6){_0x453bd6=_0x453bd6||0xcc;return function(_0x109f69){if(_0x109f69){return _0x569c79[_0x04c8('0x17')](_0x453bd6);}return _0x569c79[_0x04c8('0x18')](_0x453bd6)[_0x04c8('0x19')]();};}function respondWithResult(_0x570f27,_0xd82cc7){_0xd82cc7=_0xd82cc7||0xc8;return function(_0x11ae95){if(_0x11ae95){return _0x570f27['status'](_0xd82cc7)[_0x04c8('0x1a')](_0x11ae95);}};}function respondWithFilteredResult(_0x19f22f,_0x553357){return function(_0x335ede){if(_0x335ede){var _0xe7c896=typeof _0x553357[_0x04c8('0x1b')]===_0x04c8('0x1c')&&typeof _0x553357['limit']===_0x04c8('0x1c');var _0x5c8446=_0x335ede[_0x04c8('0x1d')];var _0x4a71e0=_0xe7c896?0x0:_0x553357[_0x04c8('0x1b')];var _0x489ff2=_0xe7c896?_0x335ede[_0x04c8('0x1d')]:_0x553357['offset']+_0x553357[_0x04c8('0x1e')];var _0x1e0d8b;if(_0x489ff2>=_0x5c8446){_0x489ff2=_0x5c8446;_0x1e0d8b=0xc8;}else{_0x1e0d8b=0xce;}_0x19f22f[_0x04c8('0x18')](_0x1e0d8b);return _0x19f22f['set'](_0x04c8('0x1f'),_0x4a71e0+'-'+_0x489ff2+'/'+_0x5c8446)[_0x04c8('0x1a')](_0x335ede);}return null;};}function patchUpdates(_0x12ead7){return function(_0x20baa7){try{jsonpatch[_0x04c8('0x20')](_0x20baa7,_0x12ead7,!![]);}catch(_0x2b09f4){return BPromise['reject'](_0x2b09f4);}return _0x20baa7[_0x04c8('0x21')]();};}function saveUpdates(_0x5db69e,_0x5dfb6e){return function(_0x31b282){if(_0x31b282){return _0x31b282[_0x04c8('0x22')](_0x5db69e)[_0x04c8('0x23')](function(_0x2450f5){return _0x2450f5;});}return null;};}function removeEntity(_0x31698d,_0x5d55f){return function(_0x5d9386){if(_0x5d9386){return _0x5d9386[_0x04c8('0x24')]()[_0x04c8('0x23')](function(){var _0x3b4ffa=_0x5d9386[_0x04c8('0x25')]({'plain':!![]});var _0x4921e6='Intervals';return db[_0x04c8('0x26')][_0x04c8('0x24')]({'where':{'type':_0x4921e6,'resourceId':_0x3b4ffa['id']}})[_0x04c8('0x23')](function(){return _0x5d9386;});})[_0x04c8('0x23')](function(){_0x31698d[_0x04c8('0x18')](0xcc)[_0x04c8('0x19')]();});}};}function handleEntityNotFound(_0x499196,_0x33d9af){return function(_0x31ab1c){if(!_0x31ab1c){_0x499196[_0x04c8('0x17')](0x194);}return _0x31ab1c;};}function handleError(_0x498643,_0x191cf5){_0x191cf5=_0x191cf5||0x1f4;return function(_0x411aaa){logger[_0x04c8('0x27')](_0x411aaa[_0x04c8('0x28')]);if(_0x411aaa[_0x04c8('0x29')]){delete _0x411aaa['name'];}_0x498643[_0x04c8('0x18')](_0x191cf5)[_0x04c8('0x2a')](_0x411aaa);};}exports[_0x04c8('0x2b')]=function(_0x16be13,_0x2816b1){var _0x53d16d={},_0x33bdbe={},_0xdcd24c={'count':0x0,'rows':[]};var _0x4a3fc4=_[_0x04c8('0x2c')](db[_0x04c8('0x2d')][_0x04c8('0x2e')],function(_0x5b68c6){return{'name':_0x5b68c6[_0x04c8('0x2f')],'type':_0x5b68c6[_0x04c8('0x30')][_0x04c8('0x31')]};});_0x33bdbe[_0x04c8('0x32')]=_[_0x04c8('0x2c')](_0x4a3fc4,_0x04c8('0x29'));_0x33bdbe['query']=_[_0x04c8('0x33')](_0x16be13['query']);_0x33bdbe[_0x04c8('0x34')]=_['intersection'](_0x33bdbe[_0x04c8('0x32')],_0x33bdbe[_0x04c8('0x35')]);_0x53d16d[_0x04c8('0x36')]=_[_0x04c8('0x37')](_0x33bdbe[_0x04c8('0x32')],qs[_0x04c8('0x38')](_0x16be13[_0x04c8('0x35')][_0x04c8('0x38')]));_0x53d16d[_0x04c8('0x36')]=_0x53d16d[_0x04c8('0x36')][_0x04c8('0x39')]?_0x53d16d['attributes']:_0x33bdbe[_0x04c8('0x32')];if(!_0x16be13[_0x04c8('0x35')][_0x04c8('0x3a')](_0x04c8('0x3b'))){_0x53d16d[_0x04c8('0x1e')]=qs[_0x04c8('0x1e')](_0x16be13[_0x04c8('0x35')][_0x04c8('0x1e')]);_0x53d16d['offset']=qs['offset'](_0x16be13[_0x04c8('0x35')][_0x04c8('0x1b')]);}_0x53d16d['order']=qs[_0x04c8('0x3c')](_0x16be13[_0x04c8('0x35')][_0x04c8('0x3c')]);_0x53d16d['where']=qs[_0x04c8('0x34')](_[_0x04c8('0x3d')](_0x16be13[_0x04c8('0x35')],_0x33bdbe['filters']),_0x4a3fc4);if(_0x16be13[_0x04c8('0x35')][_0x04c8('0x3e')]){_0x53d16d[_0x04c8('0x3f')]=_[_0x04c8('0x40')](_0x53d16d['where'],{'$or':_['map'](_0x4a3fc4,function(_0x556b72){if(_0x556b72[_0x04c8('0x30')]!==_0x04c8('0x41')){var _0x3d19f7={};_0x3d19f7[_0x556b72[_0x04c8('0x29')]]={'$like':'%'+_0x16be13[_0x04c8('0x35')][_0x04c8('0x3e')]+'%'};return _0x3d19f7;}})});}_0x53d16d=_[_0x04c8('0x40')]({},_0x53d16d,_0x16be13[_0x04c8('0x42')]);var _0x3c4194={'where':_0x53d16d[_0x04c8('0x3f')]};return db[_0x04c8('0x2d')][_0x04c8('0x1d')](_0x3c4194)['then'](function(_0xccd5cd){_0xdcd24c[_0x04c8('0x1d')]=_0xccd5cd;if(_0x16be13[_0x04c8('0x35')]['includeAll']){_0x53d16d[_0x04c8('0x43')]=[{'all':!![]}];}return db['Interval'][_0x04c8('0x44')](_0x53d16d);})[_0x04c8('0x23')](function(_0x3c4797){_0xdcd24c[_0x04c8('0x45')]=_0x3c4797;return _0xdcd24c;})[_0x04c8('0x23')](respondWithFilteredResult(_0x2816b1,_0x53d16d))[_0x04c8('0x46')](handleError(_0x2816b1,null));};exports[_0x04c8('0x47')]=function(_0x467fa2,_0x835145){var _0x56674b={'raw':!![],'where':{'id':_0x467fa2[_0x04c8('0x48')]['id']}},_0x4157b7={};_0x4157b7[_0x04c8('0x32')]=_[_0x04c8('0x33')](db[_0x04c8('0x2d')][_0x04c8('0x2e')]);_0x4157b7[_0x04c8('0x35')]=_[_0x04c8('0x33')](_0x467fa2[_0x04c8('0x35')]);_0x4157b7[_0x04c8('0x34')]=_[_0x04c8('0x37')](_0x4157b7[_0x04c8('0x32')],_0x4157b7[_0x04c8('0x35')]);_0x56674b[_0x04c8('0x36')]=_[_0x04c8('0x37')](_0x4157b7['model'],qs['fields'](_0x467fa2[_0x04c8('0x35')][_0x04c8('0x38')]));_0x56674b[_0x04c8('0x36')]=_0x56674b[_0x04c8('0x36')][_0x04c8('0x39')]?_0x56674b[_0x04c8('0x36')]:_0x4157b7[_0x04c8('0x32')];if(_0x467fa2[_0x04c8('0x35')]['includeAll']){_0x56674b[_0x04c8('0x43')]=[{'all':!![]}];}_0x56674b=_[_0x04c8('0x40')]({},_0x56674b,_0x467fa2[_0x04c8('0x42')]);return db[_0x04c8('0x2d')][_0x04c8('0x49')](_0x56674b)[_0x04c8('0x23')](handleEntityNotFound(_0x835145,null))[_0x04c8('0x23')](respondWithResult(_0x835145,null))[_0x04c8('0x46')](handleError(_0x835145,null));};exports[_0x04c8('0x4a')]=function(_0x3dc573,_0x1ba906){return db[_0x04c8('0x2d')][_0x04c8('0x4a')](_0x3dc573[_0x04c8('0x4b')],{})[_0x04c8('0x23')](function(_0x4bb63c){var _0x1891f0=_0x3dc573[_0x04c8('0x4c')]['get']({'plain':!![]});if(!_0x1891f0)throw new Error(_0x04c8('0x4d'));if(_0x1891f0[_0x04c8('0x4e')]===_0x04c8('0x4c')){var _0x2fee97=_0x4bb63c[_0x04c8('0x25')]({'plain':!![]});var _0x28f4bb=_0x04c8('0x4f');return db[_0x04c8('0x50')][_0x04c8('0x49')]({'where':{'name':_0x28f4bb,'userProfileId':_0x1891f0['userProfileId']},'raw':!![]})['then'](function(_0x3a168a){if(_0x3a168a&&_0x3a168a[_0x04c8('0x51')]===0x0){return db[_0x04c8('0x26')][_0x04c8('0x4a')]({'name':_0x2fee97[_0x04c8('0x29')],'resourceId':_0x2fee97['id'],'type':_0x3a168a['name'],'sectionId':_0x3a168a['id']},{})[_0x04c8('0x23')](function(){return _0x4bb63c;});}else{return _0x4bb63c;}})[_0x04c8('0x46')](function(_0x2c3d40){logger[_0x04c8('0x27')](_0x04c8('0x52'),_0x2c3d40);throw _0x2c3d40;});}return _0x4bb63c;})['then'](respondWithResult(_0x1ba906,0xc9))[_0x04c8('0x46')](handleError(_0x1ba906,null));};exports['update']=function(_0x1f2553,_0x3a2f85){if(_0x1f2553[_0x04c8('0x4b')]['id']){delete _0x1f2553[_0x04c8('0x4b')]['id'];}return db[_0x04c8('0x2d')][_0x04c8('0x49')]({'where':{'id':_0x1f2553[_0x04c8('0x48')]['id']}})['then'](handleEntityNotFound(_0x3a2f85,null))[_0x04c8('0x23')](saveUpdates(_0x1f2553[_0x04c8('0x4b')],null))[_0x04c8('0x23')](respondWithResult(_0x3a2f85,null))['catch'](handleError(_0x3a2f85,null));};exports[_0x04c8('0x24')]=function(_0x20334f,_0x5afcf8){return db['Interval'][_0x04c8('0x49')]({'where':{'id':_0x20334f[_0x04c8('0x48')]['id']}})['then'](handleEntityNotFound(_0x5afcf8,null))[_0x04c8('0x23')](removeEntity(_0x5afcf8,null))[_0x04c8('0x46')](handleError(_0x5afcf8,null));};exports['addInterval']=function(_0x1cbbad,_0x534eb6,_0x2f929a){if(_0x1cbbad[_0x04c8('0x4b')]['id']){delete _0x1cbbad[_0x04c8('0x4b')]['id'];}return db[_0x04c8('0x2d')][_0x04c8('0x49')]({'where':{'id':_0x1cbbad['params']['id']}})[_0x04c8('0x23')](handleEntityNotFound(_0x534eb6,null))[_0x04c8('0x23')](function(_0x562691){if(_0x562691){_0x1cbbad[_0x04c8('0x4b')]['IntervalId']=_0x562691['id'];return db[_0x04c8('0x2d')][_0x04c8('0x4a')](_0x1cbbad[_0x04c8('0x4b')]);}})[_0x04c8('0x23')](respondWithResult(_0x534eb6,null))[_0x04c8('0x46')](handleError(_0x534eb6,null));};exports[_0x04c8('0x53')]=function(_0x9e22b9,_0x471a8c,_0xa3b480){var _0x182236={};var _0x5dc104={};var _0x1817c0;var _0x372f97;return db[_0x04c8('0x2d')][_0x04c8('0x54')]({'where':{'id':_0x9e22b9[_0x04c8('0x48')]['id']}})['then'](handleEntityNotFound(_0x471a8c,null))[_0x04c8('0x23')](function(_0x3eebd0){if(_0x3eebd0){_0x1817c0=_0x3eebd0;_0x5dc104[_0x04c8('0x32')]=_[_0x04c8('0x33')](db[_0x04c8('0x2d')][_0x04c8('0x2e')]);_0x5dc104[_0x04c8('0x35')]=_['keys'](_0x9e22b9[_0x04c8('0x35')]);_0x5dc104[_0x04c8('0x34')]=_[_0x04c8('0x37')](_0x5dc104[_0x04c8('0x32')],_0x5dc104[_0x04c8('0x35')]);_0x182236[_0x04c8('0x36')]=_[_0x04c8('0x37')](_0x5dc104[_0x04c8('0x32')],qs[_0x04c8('0x38')](_0x9e22b9['query'][_0x04c8('0x38')]));_0x182236['attributes']=_0x182236[_0x04c8('0x36')][_0x04c8('0x39')]?_0x182236[_0x04c8('0x36')]:_0x5dc104[_0x04c8('0x32')];_0x182236[_0x04c8('0x55')]=qs[_0x04c8('0x3c')](_0x9e22b9[_0x04c8('0x35')][_0x04c8('0x3c')]);_0x182236[_0x04c8('0x3f')]=qs['filters'](_[_0x04c8('0x3d')](_0x9e22b9['query'],_0x5dc104[_0x04c8('0x34')]));if(_0x9e22b9['query'][_0x04c8('0x3e')]){_0x182236['where']=_[_0x04c8('0x40')](_0x182236[_0x04c8('0x3f')],{'$or':_[_0x04c8('0x2c')](_0x182236[_0x04c8('0x36')],function(_0x21d7e1){var _0x4f46b6={};_0x4f46b6[_0x21d7e1]={'$like':'%'+_0x9e22b9[_0x04c8('0x35')]['filter']+'%'};return _0x4f46b6;})});}_0x182236=_[_0x04c8('0x40')]({},_0x182236,_0x9e22b9['options']);return _0x1817c0[_0x04c8('0x53')](_0x182236);}})[_0x04c8('0x23')](function(_0x46dff3){if(_0x46dff3){_0x372f97=_0x46dff3[_0x04c8('0x39')];if(!_0x9e22b9[_0x04c8('0x35')][_0x04c8('0x3a')](_0x04c8('0x3b'))){_0x182236[_0x04c8('0x1e')]=qs[_0x04c8('0x1e')](_0x9e22b9[_0x04c8('0x35')][_0x04c8('0x1e')]);_0x182236[_0x04c8('0x1b')]=qs[_0x04c8('0x1b')](_0x9e22b9['query'][_0x04c8('0x1b')]);}return _0x1817c0[_0x04c8('0x53')](_0x182236);}})[_0x04c8('0x23')](function(_0x15c549){if(_0x15c549){return _0x15c549?{'count':_0x372f97,'rows':_0x15c549}:null;}})[_0x04c8('0x23')](respondWithResult(_0x471a8c,null))[_0x04c8('0x46')](handleError(_0x471a8c,null));};exports['addIntervals']=function(_0x478b69,_0x1d1b10,_0x541dc0){return db[_0x04c8('0x2d')][_0x04c8('0x54')]({'where':{'id':_0x478b69[_0x04c8('0x48')]['id']}})['then'](handleEntityNotFound(_0x1d1b10,null))[_0x04c8('0x23')](function(_0x57e91c){if(_0x57e91c){return db[_0x04c8('0x56')]['transaction'](function(_0x1c1042){return db[_0x04c8('0x2d')][_0x04c8('0x24')]({'where':{'IntervalId':_0x478b69[_0x04c8('0x48')]['id']},'transaction':_0x1c1042})[_0x04c8('0x23')](function(_0x3f8dee){var _0x12144a=_[_0x04c8('0x2c')](_0x478b69['body'],function(_0x1d8326){delete _0x1d8326['id'];_0x1d8326[_0x04c8('0x57')]=_0x478b69[_0x04c8('0x48')]['id'];return _0x1d8326;});return db[_0x04c8('0x2d')][_0x04c8('0x58')](_0x12144a,{'transaction':_0x1c1042});});})['then'](function(){return db[_0x04c8('0x2d')][_0x04c8('0x44')]({'where':{'IntervalId':_0x478b69[_0x04c8('0x48')]['id']}});});}})[_0x04c8('0x23')](respondWithResult(_0x1d1b10,null))[_0x04c8('0x46')](handleError(_0x1d1b10,null));};