Built motion from commit 994c64e1.|2.6.1
[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 _0xecc8=['includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','getIntervals','findOne','order','addIntervals','sequelize','transaction','bulkCreate','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/extensions/rewrite','status','offset','undefined','limit','count','set','json','apply','update','destroy','then','get','Intervals','end','sendStatus','error','name','index','map','Interval','rawAttributes','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options'];(function(_0x42a1dc,_0x137eff){var _0xd7037e=function(_0x175a94){while(--_0x175a94){_0x42a1dc['push'](_0x42a1dc['shift']());}};_0xd7037e(++_0x137eff);}(_0xecc8,0x18b));var _0x8ecc=function(_0x281a28,_0x34542c){_0x281a28=_0x281a28-0x0;var _0x54f40c=_0xecc8[_0x281a28];return _0x54f40c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x8ecc('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8ecc('0x1'));var moment=require(_0x8ecc('0x2'));var BPromise=require(_0x8ecc('0x3'));var Mustache=require(_0x8ecc('0x4'));var util=require('util');var path=require(_0x8ecc('0x5'));var sox=require(_0x8ecc('0x6'));var csv=require('to-csv');var ejs=require(_0x8ecc('0x7'));var fs=require('fs');var fs_extra=require(_0x8ecc('0x8'));var _=require(_0x8ecc('0x9'));var squel=require(_0x8ecc('0xa'));var crypto=require('crypto');var jsforce=require(_0x8ecc('0xb'));var deskjs=require(_0x8ecc('0xc'));var toCsv=require(_0x8ecc('0xd'));var querystring=require(_0x8ecc('0xe'));var Papa=require(_0x8ecc('0xf'));var Redis=require(_0x8ecc('0x10'));var authService=require(_0x8ecc('0x11'));var qs=require(_0x8ecc('0x12'));var as=require(_0x8ecc('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8ecc('0x14'))(_0x8ecc('0x15'));var utils=require(_0x8ecc('0x16'));var config=require(_0x8ecc('0x17'));var licenseUtil=require(_0x8ecc('0x18'));var db=require('../../mysqldb')['db'];var extensions=require(_0x8ecc('0x19'));function respondWithStatusCode(_0x124fee,_0x258428){_0x258428=_0x258428||0xcc;return function(_0x3585ca){if(_0x3585ca){return _0x124fee['sendStatus'](_0x258428);}return _0x124fee[_0x8ecc('0x1a')](_0x258428)['end']();};}function respondWithResult(_0x40fe5e,_0x552736){_0x552736=_0x552736||0xc8;return function(_0x4ba413){if(_0x4ba413){return _0x40fe5e[_0x8ecc('0x1a')](_0x552736)['json'](_0x4ba413);}};}function respondWithFilteredResult(_0x9d08cb,_0x506bc5){return function(_0x42a971){if(_0x42a971){var _0x2a5acc=typeof _0x506bc5[_0x8ecc('0x1b')]===_0x8ecc('0x1c')&&typeof _0x506bc5[_0x8ecc('0x1d')]===_0x8ecc('0x1c');var _0x14ca27=_0x42a971[_0x8ecc('0x1e')];var _0x33f3d9=_0x2a5acc?0x0:_0x506bc5['offset'];var _0x4d5eac=_0x2a5acc?_0x42a971[_0x8ecc('0x1e')]:_0x506bc5['offset']+_0x506bc5['limit'];var _0x3b3c3a;if(_0x4d5eac>=_0x14ca27){_0x4d5eac=_0x14ca27;_0x3b3c3a=0xc8;}else{_0x3b3c3a=0xce;}_0x9d08cb[_0x8ecc('0x1a')](_0x3b3c3a);return _0x9d08cb[_0x8ecc('0x1f')]('Content-Range',_0x33f3d9+'-'+_0x4d5eac+'/'+_0x14ca27)[_0x8ecc('0x20')](_0x42a971);}return null;};}function patchUpdates(_0x10d382){return function(_0x3c55cd){try{jsonpatch[_0x8ecc('0x21')](_0x3c55cd,_0x10d382,!![]);}catch(_0x512dd8){return BPromise['reject'](_0x512dd8);}return _0x3c55cd['save']();};}function saveUpdates(_0x4f6a1,_0x5855fe){return function(_0x2cde40){if(_0x2cde40){return _0x2cde40[_0x8ecc('0x22')](_0x4f6a1)['then'](function(_0x155c12){return _0x155c12;});}return null;};}function removeEntity(_0x337f87,_0x126510){return function(_0x58b620){if(_0x58b620){return _0x58b620[_0x8ecc('0x23')]()[_0x8ecc('0x24')](function(){var _0x55bb01=_0x58b620[_0x8ecc('0x25')]({'plain':!![]});var _0x164189=_0x8ecc('0x26');return db['UserProfileResource'][_0x8ecc('0x23')]({'where':{'type':_0x164189,'resourceId':_0x55bb01['id']}})[_0x8ecc('0x24')](function(){return _0x58b620;});})[_0x8ecc('0x24')](function(){_0x337f87[_0x8ecc('0x1a')](0xcc)[_0x8ecc('0x27')]();});}};}function handleEntityNotFound(_0x208adc,_0x2e7c2f){return function(_0x215bee){if(!_0x215bee){_0x208adc[_0x8ecc('0x28')](0x194);}return _0x215bee;};}function handleError(_0x57899a,_0x483f12){_0x483f12=_0x483f12||0x1f4;return function(_0x55f83b){logger[_0x8ecc('0x29')](_0x55f83b['stack']);if(_0x55f83b[_0x8ecc('0x2a')]){delete _0x55f83b[_0x8ecc('0x2a')];}_0x57899a['status'](_0x483f12)['send'](_0x55f83b);};}exports[_0x8ecc('0x2b')]=function(_0x49835a,_0x34f455){var _0x2fdf75={},_0x5d9b47={},_0x21e1e3={'count':0x0,'rows':[]};var _0x56322a=_[_0x8ecc('0x2c')](db[_0x8ecc('0x2d')][_0x8ecc('0x2e')],function(_0x4860b5){return{'name':_0x4860b5['fieldName'],'type':_0x4860b5[_0x8ecc('0x2f')]['key']};});_0x5d9b47[_0x8ecc('0x30')]=_['map'](_0x56322a,_0x8ecc('0x2a'));_0x5d9b47[_0x8ecc('0x31')]=_[_0x8ecc('0x32')](_0x49835a['query']);_0x5d9b47['filters']=_[_0x8ecc('0x33')](_0x5d9b47[_0x8ecc('0x30')],_0x5d9b47['query']);_0x2fdf75[_0x8ecc('0x34')]=_[_0x8ecc('0x33')](_0x5d9b47[_0x8ecc('0x30')],qs[_0x8ecc('0x35')](_0x49835a['query']['fields']));_0x2fdf75[_0x8ecc('0x34')]=_0x2fdf75[_0x8ecc('0x34')][_0x8ecc('0x36')]?_0x2fdf75[_0x8ecc('0x34')]:_0x5d9b47['model'];if(!_0x49835a[_0x8ecc('0x31')][_0x8ecc('0x37')](_0x8ecc('0x38'))){_0x2fdf75['limit']=qs['limit'](_0x49835a[_0x8ecc('0x31')][_0x8ecc('0x1d')]);_0x2fdf75[_0x8ecc('0x1b')]=qs[_0x8ecc('0x1b')](_0x49835a[_0x8ecc('0x31')][_0x8ecc('0x1b')]);}_0x2fdf75['order']=qs[_0x8ecc('0x39')](_0x49835a[_0x8ecc('0x31')][_0x8ecc('0x39')]);_0x2fdf75[_0x8ecc('0x3a')]=qs[_0x8ecc('0x3b')](_[_0x8ecc('0x3c')](_0x49835a['query'],_0x5d9b47['filters']),_0x56322a);if(_0x49835a[_0x8ecc('0x31')][_0x8ecc('0x3d')]){_0x2fdf75['where']=_[_0x8ecc('0x3e')](_0x2fdf75[_0x8ecc('0x3a')],{'$or':_[_0x8ecc('0x2c')](_0x56322a,function(_0x39cc1c){if(_0x39cc1c[_0x8ecc('0x2f')]!==_0x8ecc('0x3f')){var _0x1a90f1={};_0x1a90f1[_0x39cc1c['name']]={'$like':'%'+_0x49835a['query'][_0x8ecc('0x3d')]+'%'};return _0x1a90f1;}})});}_0x2fdf75=_[_0x8ecc('0x3e')]({},_0x2fdf75,_0x49835a[_0x8ecc('0x40')]);var _0x16398f={'where':_0x2fdf75[_0x8ecc('0x3a')]};return db[_0x8ecc('0x2d')][_0x8ecc('0x1e')](_0x16398f)[_0x8ecc('0x24')](function(_0x41625b){_0x21e1e3[_0x8ecc('0x1e')]=_0x41625b;if(_0x49835a[_0x8ecc('0x31')][_0x8ecc('0x41')]){_0x2fdf75[_0x8ecc('0x42')]=[{'all':!![]}];}return db[_0x8ecc('0x2d')][_0x8ecc('0x43')](_0x2fdf75);})[_0x8ecc('0x24')](function(_0x5aad56){_0x21e1e3[_0x8ecc('0x44')]=_0x5aad56;return _0x21e1e3;})[_0x8ecc('0x24')](respondWithFilteredResult(_0x34f455,_0x2fdf75))[_0x8ecc('0x45')](handleError(_0x34f455,null));};exports[_0x8ecc('0x46')]=function(_0x1a9c06,_0x7d48c1){var _0x27cf21={'raw':!![],'where':{'id':_0x1a9c06[_0x8ecc('0x47')]['id']}},_0x42a371={};_0x42a371[_0x8ecc('0x30')]=_[_0x8ecc('0x32')](db['Interval']['rawAttributes']);_0x42a371['query']=_[_0x8ecc('0x32')](_0x1a9c06['query']);_0x42a371[_0x8ecc('0x3b')]=_[_0x8ecc('0x33')](_0x42a371[_0x8ecc('0x30')],_0x42a371['query']);_0x27cf21[_0x8ecc('0x34')]=_[_0x8ecc('0x33')](_0x42a371[_0x8ecc('0x30')],qs[_0x8ecc('0x35')](_0x1a9c06['query'][_0x8ecc('0x35')]));_0x27cf21['attributes']=_0x27cf21[_0x8ecc('0x34')][_0x8ecc('0x36')]?_0x27cf21['attributes']:_0x42a371[_0x8ecc('0x30')];if(_0x1a9c06[_0x8ecc('0x31')][_0x8ecc('0x41')]){_0x27cf21[_0x8ecc('0x42')]=[{'all':!![]}];}_0x27cf21=_[_0x8ecc('0x3e')]({},_0x27cf21,_0x1a9c06[_0x8ecc('0x40')]);return db[_0x8ecc('0x2d')][_0x8ecc('0x48')](_0x27cf21)[_0x8ecc('0x24')](handleEntityNotFound(_0x7d48c1,null))[_0x8ecc('0x24')](respondWithResult(_0x7d48c1,null))['catch'](handleError(_0x7d48c1,null));};exports[_0x8ecc('0x49')]=function(_0xfb0fd7,_0x5d21ce){return db[_0x8ecc('0x2d')][_0x8ecc('0x49')](_0xfb0fd7[_0x8ecc('0x4a')],{})['then'](function(_0xf22041){var _0x1e3b3f=_0xfb0fd7[_0x8ecc('0x4b')][_0x8ecc('0x25')]({'plain':!![]});if(!_0x1e3b3f)throw new Error(_0x8ecc('0x4c'));if(_0x1e3b3f[_0x8ecc('0x4d')]===_0x8ecc('0x4b')){var _0x172942=_0xf22041[_0x8ecc('0x25')]({'plain':!![]});var _0x330861='Intervals';return db[_0x8ecc('0x4e')][_0x8ecc('0x48')]({'where':{'name':_0x330861,'userProfileId':_0x1e3b3f[_0x8ecc('0x4f')]},'raw':!![]})[_0x8ecc('0x24')](function(_0x4664cc){if(_0x4664cc&&_0x4664cc[_0x8ecc('0x50')]===0x0){return db[_0x8ecc('0x51')][_0x8ecc('0x49')]({'name':_0x172942[_0x8ecc('0x2a')],'resourceId':_0x172942['id'],'type':_0x4664cc[_0x8ecc('0x2a')],'sectionId':_0x4664cc['id']},{})[_0x8ecc('0x24')](function(){return _0xf22041;});}else{return _0xf22041;}})[_0x8ecc('0x45')](function(_0x57546d){logger[_0x8ecc('0x29')](_0x8ecc('0x52'),_0x57546d);throw _0x57546d;});}return _0xf22041;})[_0x8ecc('0x24')](respondWithResult(_0x5d21ce,0xc9))['catch'](handleError(_0x5d21ce,null));};exports[_0x8ecc('0x22')]=function(_0x3dad65,_0x56a540){if(_0x3dad65[_0x8ecc('0x4a')]['id']){delete _0x3dad65[_0x8ecc('0x4a')]['id'];}return db[_0x8ecc('0x2d')]['find']({'where':{'id':_0x3dad65[_0x8ecc('0x47')]['id']}})[_0x8ecc('0x24')](handleEntityNotFound(_0x56a540,null))[_0x8ecc('0x24')](saveUpdates(_0x3dad65[_0x8ecc('0x4a')],null))[_0x8ecc('0x24')](respondWithResult(_0x56a540,null))[_0x8ecc('0x45')](handleError(_0x56a540,null));};exports[_0x8ecc('0x23')]=function(_0x1a108a,_0x4f4ea6){return db[_0x8ecc('0x2d')][_0x8ecc('0x48')]({'where':{'id':_0x1a108a[_0x8ecc('0x47')]['id']}})[_0x8ecc('0x24')](handleEntityNotFound(_0x4f4ea6,null))[_0x8ecc('0x24')](removeEntity(_0x4f4ea6,null))['catch'](handleError(_0x4f4ea6,null));};exports[_0x8ecc('0x53')]=function(_0x1bbdbd,_0x449893,_0x53d49c){if(_0x1bbdbd[_0x8ecc('0x4a')]['id']){delete _0x1bbdbd[_0x8ecc('0x4a')]['id'];}return db[_0x8ecc('0x2d')]['find']({'where':{'id':_0x1bbdbd[_0x8ecc('0x47')]['id']}})[_0x8ecc('0x24')](handleEntityNotFound(_0x449893,null))[_0x8ecc('0x24')](function(_0x32c650){if(_0x32c650){_0x1bbdbd[_0x8ecc('0x4a')][_0x8ecc('0x54')]=_0x32c650['id'];return db['Interval'][_0x8ecc('0x49')](_0x1bbdbd['body']);}})[_0x8ecc('0x24')](respondWithResult(_0x449893,null))['catch'](handleError(_0x449893,null));};exports[_0x8ecc('0x55')]=function(_0x23e8df,_0x2af92d,_0x2ac07c){var _0x10aedc={};var _0x5f4c65={};var _0x2d6295;var _0xb20963;return db[_0x8ecc('0x2d')][_0x8ecc('0x56')]({'where':{'id':_0x23e8df[_0x8ecc('0x47')]['id']}})[_0x8ecc('0x24')](handleEntityNotFound(_0x2af92d,null))['then'](function(_0x132fb3){if(_0x132fb3){_0x2d6295=_0x132fb3;_0x5f4c65[_0x8ecc('0x30')]=_[_0x8ecc('0x32')](db[_0x8ecc('0x2d')]['rawAttributes']);_0x5f4c65['query']=_[_0x8ecc('0x32')](_0x23e8df[_0x8ecc('0x31')]);_0x5f4c65['filters']=_[_0x8ecc('0x33')](_0x5f4c65[_0x8ecc('0x30')],_0x5f4c65[_0x8ecc('0x31')]);_0x10aedc[_0x8ecc('0x34')]=_[_0x8ecc('0x33')](_0x5f4c65['model'],qs[_0x8ecc('0x35')](_0x23e8df[_0x8ecc('0x31')]['fields']));_0x10aedc[_0x8ecc('0x34')]=_0x10aedc['attributes'][_0x8ecc('0x36')]?_0x10aedc[_0x8ecc('0x34')]:_0x5f4c65[_0x8ecc('0x30')];_0x10aedc[_0x8ecc('0x57')]=qs['sort'](_0x23e8df['query'][_0x8ecc('0x39')]);_0x10aedc[_0x8ecc('0x3a')]=qs[_0x8ecc('0x3b')](_[_0x8ecc('0x3c')](_0x23e8df[_0x8ecc('0x31')],_0x5f4c65['filters']));if(_0x23e8df[_0x8ecc('0x31')]['filter']){_0x10aedc[_0x8ecc('0x3a')]=_[_0x8ecc('0x3e')](_0x10aedc[_0x8ecc('0x3a')],{'$or':_[_0x8ecc('0x2c')](_0x10aedc['attributes'],function(_0x4b1f87){var _0x2d9079={};_0x2d9079[_0x4b1f87]={'$like':'%'+_0x23e8df[_0x8ecc('0x31')]['filter']+'%'};return _0x2d9079;})});}_0x10aedc=_[_0x8ecc('0x3e')]({},_0x10aedc,_0x23e8df[_0x8ecc('0x40')]);return _0x2d6295['getIntervals'](_0x10aedc);}})[_0x8ecc('0x24')](function(_0x32ac46){if(_0x32ac46){_0xb20963=_0x32ac46[_0x8ecc('0x36')];if(!_0x23e8df[_0x8ecc('0x31')]['hasOwnProperty'](_0x8ecc('0x38'))){_0x10aedc[_0x8ecc('0x1d')]=qs['limit'](_0x23e8df['query']['limit']);_0x10aedc[_0x8ecc('0x1b')]=qs[_0x8ecc('0x1b')](_0x23e8df['query'][_0x8ecc('0x1b')]);}return _0x2d6295[_0x8ecc('0x55')](_0x10aedc);}})[_0x8ecc('0x24')](function(_0x42bac0){if(_0x42bac0){return _0x42bac0?{'count':_0xb20963,'rows':_0x42bac0}:null;}})[_0x8ecc('0x24')](respondWithResult(_0x2af92d,null))['catch'](handleError(_0x2af92d,null));};exports[_0x8ecc('0x58')]=function(_0x31872f,_0x2ef290,_0x51408b){return db[_0x8ecc('0x2d')]['findOne']({'where':{'id':_0x31872f['params']['id']}})['then'](handleEntityNotFound(_0x2ef290,null))['then'](function(_0x16b33d){if(_0x16b33d){return db[_0x8ecc('0x59')][_0x8ecc('0x5a')](function(_0x1a6335){return db[_0x8ecc('0x2d')][_0x8ecc('0x23')]({'where':{'IntervalId':_0x31872f[_0x8ecc('0x47')]['id']},'transaction':_0x1a6335})[_0x8ecc('0x24')](function(_0x925215){var _0x30d89e=_[_0x8ecc('0x2c')](_0x31872f[_0x8ecc('0x4a')],function(_0x62d948){delete _0x62d948['id'];_0x62d948[_0x8ecc('0x54')]=_0x31872f[_0x8ecc('0x47')]['id'];return _0x62d948;});return db[_0x8ecc('0x2d')][_0x8ecc('0x5b')](_0x30d89e,{'transaction':_0x1a6335});});})[_0x8ecc('0x24')](function(){return db[_0x8ecc('0x2d')][_0x8ecc('0x43')]({'where':{'IntervalId':_0x31872f['params']['id']}});});}})[_0x8ecc('0x24')](respondWithResult(_0x2ef290,null))[_0x8ecc('0x45')](handleError(_0x2ef290,null));};