Built motion from commit (unavailable).|2.5.20
[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 _0x3bd8=['role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','IntervalId','findOne','getIntervals','nolimit','addIntervals','sequelize','bulkCreate','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','jsforce','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/extensions/rewrite','sendStatus','status','end','json','offset','limit','set','Content-Range','reject','save','update','then','destroy','get','Intervals','UserProfileResource','error','stack','map','Interval','rawAttributes','fieldName','type','model','name','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','find','catch','create','body'];(function(_0x194d13,_0x3575d3){var _0x5e5f6c=function(_0x44b1c2){while(--_0x44b1c2){_0x194d13['push'](_0x194d13['shift']());}};_0x5e5f6c(++_0x3575d3);}(_0x3bd8,0x1bb));var _0x83bd=function(_0x382a62,_0x1baa5e){_0x382a62=_0x382a62-0x0;var _0x490a25=_0x3bd8[_0x382a62];return _0x490a25;};'use strict';var pdf=require(_0x83bd('0x0'));var emlformat=require(_0x83bd('0x1'));var rimraf=require(_0x83bd('0x2'));var zipdir=require(_0x83bd('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x83bd('0x4'));var BPromise=require(_0x83bd('0x5'));var Mustache=require(_0x83bd('0x6'));var util=require('util');var path=require(_0x83bd('0x7'));var sox=require(_0x83bd('0x8'));var csv=require(_0x83bd('0x9'));var ejs=require(_0x83bd('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x83bd('0xb'));var crypto=require('crypto');var jsforce=require(_0x83bd('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x83bd('0xd'));var Papa=require(_0x83bd('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x83bd('0xf'));var hardwareService=require(_0x83bd('0x10'));var logger=require(_0x83bd('0x11'))(_0x83bd('0x12'));var utils=require(_0x83bd('0x13'));var config=require(_0x83bd('0x14'));var licenseUtil=require(_0x83bd('0x15'));var db=require('../../mysqldb')['db'];var extensions=require(_0x83bd('0x16'));function respondWithStatusCode(_0x4feaf4,_0x24bb04){_0x24bb04=_0x24bb04||0xcc;return function(_0x5eafcc){if(_0x5eafcc){return _0x4feaf4[_0x83bd('0x17')](_0x24bb04);}return _0x4feaf4[_0x83bd('0x18')](_0x24bb04)[_0x83bd('0x19')]();};}function respondWithResult(_0x46b34f,_0x4bbc7c){_0x4bbc7c=_0x4bbc7c||0xc8;return function(_0x4df841){if(_0x4df841){return _0x46b34f[_0x83bd('0x18')](_0x4bbc7c)[_0x83bd('0x1a')](_0x4df841);}};}function respondWithFilteredResult(_0x27a6bf,_0x147a0){return function(_0x591b77){if(_0x591b77){var _0x173142=_0x591b77['count'],_0x1879ac=_0x147a0[_0x83bd('0x1b')],_0x510801=_0x147a0[_0x83bd('0x1b')]+_0x147a0[_0x83bd('0x1c')],_0x385205;if(_0x510801>=_0x173142){_0x510801=_0x173142;_0x385205=0xc8;}else{_0x385205=0xce;}_0x27a6bf[_0x83bd('0x18')](_0x385205);return _0x27a6bf[_0x83bd('0x1d')](_0x83bd('0x1e'),_0x1879ac+'-'+_0x510801+'/'+_0x173142)['json'](_0x591b77);}return null;};}function patchUpdates(_0x3feed4){return function(_0x47b455){try{jsonpatch['apply'](_0x47b455,_0x3feed4,!![]);}catch(_0x56a41d){return BPromise[_0x83bd('0x1f')](_0x56a41d);}return _0x47b455[_0x83bd('0x20')]();};}function saveUpdates(_0x3ef62d,_0x51a80f){return function(_0x22ba65){if(_0x22ba65){return _0x22ba65[_0x83bd('0x21')](_0x3ef62d)[_0x83bd('0x22')](function(_0x5b554c){return _0x5b554c;});}return null;};}function removeEntity(_0x5ddd21,_0x2d3178){return function(_0x1e50c9){if(_0x1e50c9){return _0x1e50c9[_0x83bd('0x23')]()['then'](function(){var _0x441e9f=_0x1e50c9[_0x83bd('0x24')]({'plain':!![]});var _0x14d311=_0x83bd('0x25');return db[_0x83bd('0x26')][_0x83bd('0x23')]({'where':{'type':_0x14d311,'resourceId':_0x441e9f['id']}})['then'](function(){return _0x1e50c9;});})['then'](function(){_0x5ddd21[_0x83bd('0x18')](0xcc)[_0x83bd('0x19')]();});}};}function handleEntityNotFound(_0xc7631,_0x46b84d){return function(_0x169249){if(!_0x169249){_0xc7631[_0x83bd('0x17')](0x194);}return _0x169249;};}function handleError(_0x414db5,_0x2c2884){_0x2c2884=_0x2c2884||0x1f4;return function(_0x3adc4b){logger[_0x83bd('0x27')](_0x3adc4b[_0x83bd('0x28')]);if(_0x3adc4b['name']){delete _0x3adc4b['name'];}_0x414db5[_0x83bd('0x18')](_0x2c2884)['send'](_0x3adc4b);};}exports['index']=function(_0x31c8df,_0x35d6e4){var _0x163b12={},_0x50db95={},_0x44c919={'count':0x0,'rows':[]};var _0x3b10cf=_[_0x83bd('0x29')](db[_0x83bd('0x2a')][_0x83bd('0x2b')],function(_0x5c2b67){return{'name':_0x5c2b67[_0x83bd('0x2c')],'type':_0x5c2b67[_0x83bd('0x2d')]['key']};});_0x50db95[_0x83bd('0x2e')]=_[_0x83bd('0x29')](_0x3b10cf,_0x83bd('0x2f'));_0x50db95['query']=_[_0x83bd('0x30')](_0x31c8df[_0x83bd('0x31')]);_0x50db95[_0x83bd('0x32')]=_[_0x83bd('0x33')](_0x50db95['model'],_0x50db95[_0x83bd('0x31')]);_0x163b12[_0x83bd('0x34')]=_[_0x83bd('0x33')](_0x50db95[_0x83bd('0x2e')],qs[_0x83bd('0x35')](_0x31c8df['query'][_0x83bd('0x35')]));_0x163b12[_0x83bd('0x34')]=_0x163b12[_0x83bd('0x34')][_0x83bd('0x36')]?_0x163b12[_0x83bd('0x34')]:_0x50db95[_0x83bd('0x2e')];if(!_0x31c8df[_0x83bd('0x31')][_0x83bd('0x37')]('nolimit')){_0x163b12[_0x83bd('0x1c')]=qs[_0x83bd('0x1c')](_0x31c8df[_0x83bd('0x31')][_0x83bd('0x1c')]);_0x163b12[_0x83bd('0x1b')]=qs[_0x83bd('0x1b')](_0x31c8df[_0x83bd('0x31')][_0x83bd('0x1b')]);}_0x163b12[_0x83bd('0x38')]=qs[_0x83bd('0x39')](_0x31c8df[_0x83bd('0x31')][_0x83bd('0x39')]);_0x163b12[_0x83bd('0x3a')]=qs[_0x83bd('0x32')](_[_0x83bd('0x3b')](_0x31c8df['query'],_0x50db95[_0x83bd('0x32')]),_0x3b10cf);if(_0x31c8df['query'][_0x83bd('0x3c')]){_0x163b12[_0x83bd('0x3a')]=_[_0x83bd('0x3d')](_0x163b12[_0x83bd('0x3a')],{'$or':_[_0x83bd('0x29')](_0x3b10cf,function(_0x3e0abf){if(_0x3e0abf['type']!==_0x83bd('0x3e')){var _0x405d0e={};_0x405d0e[_0x3e0abf[_0x83bd('0x2f')]]={'$like':'%'+_0x31c8df[_0x83bd('0x31')][_0x83bd('0x3c')]+'%'};return _0x405d0e;}})});}_0x163b12=_['merge']({},_0x163b12,_0x31c8df[_0x83bd('0x3f')]);var _0x440402={'where':_0x163b12['where']};return db[_0x83bd('0x2a')]['count'](_0x440402)[_0x83bd('0x22')](function(_0x2fd735){_0x44c919[_0x83bd('0x40')]=_0x2fd735;if(_0x31c8df['query'][_0x83bd('0x41')]){_0x163b12[_0x83bd('0x42')]=[{'all':!![]}];}return db['Interval'][_0x83bd('0x43')](_0x163b12);})[_0x83bd('0x22')](function(_0x4d2aef){_0x44c919[_0x83bd('0x44')]=_0x4d2aef;return _0x44c919;})[_0x83bd('0x22')](respondWithFilteredResult(_0x35d6e4,_0x163b12))['catch'](handleError(_0x35d6e4,null));};exports['show']=function(_0x44f1c7,_0x154dad){var _0x248bcd={'raw':!![],'where':{'id':_0x44f1c7['params']['id']}},_0x3dd536={};_0x3dd536['model']=_['keys'](db[_0x83bd('0x2a')]['rawAttributes']);_0x3dd536[_0x83bd('0x31')]=_[_0x83bd('0x30')](_0x44f1c7[_0x83bd('0x31')]);_0x3dd536[_0x83bd('0x32')]=_[_0x83bd('0x33')](_0x3dd536['model'],_0x3dd536[_0x83bd('0x31')]);_0x248bcd[_0x83bd('0x34')]=_[_0x83bd('0x33')](_0x3dd536[_0x83bd('0x2e')],qs['fields'](_0x44f1c7[_0x83bd('0x31')][_0x83bd('0x35')]));_0x248bcd[_0x83bd('0x34')]=_0x248bcd[_0x83bd('0x34')][_0x83bd('0x36')]?_0x248bcd[_0x83bd('0x34')]:_0x3dd536[_0x83bd('0x2e')];if(_0x44f1c7[_0x83bd('0x31')][_0x83bd('0x41')]){_0x248bcd['include']=[{'all':!![]}];}_0x248bcd=_[_0x83bd('0x3d')]({},_0x248bcd,_0x44f1c7[_0x83bd('0x3f')]);return db[_0x83bd('0x2a')][_0x83bd('0x45')](_0x248bcd)[_0x83bd('0x22')](handleEntityNotFound(_0x154dad,null))[_0x83bd('0x22')](respondWithResult(_0x154dad,null))[_0x83bd('0x46')](handleError(_0x154dad,null));};exports[_0x83bd('0x47')]=function(_0x1aefd9,_0x16e69a){return db[_0x83bd('0x2a')][_0x83bd('0x47')](_0x1aefd9[_0x83bd('0x48')],{})['then'](function(_0x3750b7){var _0x51a170=_0x1aefd9['user'][_0x83bd('0x24')]({'plain':!![]});if(!_0x51a170)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x51a170[_0x83bd('0x49')]===_0x83bd('0x4a')){var _0x50ef8b=_0x3750b7[_0x83bd('0x24')]({'plain':!![]});var _0x10ee00=_0x83bd('0x25');return db[_0x83bd('0x4b')][_0x83bd('0x45')]({'where':{'name':_0x10ee00,'userProfileId':_0x51a170['userProfileId']},'raw':!![]})['then'](function(_0x3b6308){if(_0x3b6308&&_0x3b6308[_0x83bd('0x4c')]===0x0){return db[_0x83bd('0x26')]['create']({'name':_0x50ef8b[_0x83bd('0x2f')],'resourceId':_0x50ef8b['id'],'type':_0x3b6308[_0x83bd('0x2f')],'sectionId':_0x3b6308['id']},{})[_0x83bd('0x22')](function(){return _0x3750b7;});}else{return _0x3750b7;}})[_0x83bd('0x46')](function(_0x3069d7){logger['error'](_0x83bd('0x4d'),_0x3069d7);throw _0x3069d7;});}return _0x3750b7;})['then'](respondWithResult(_0x16e69a,0xc9))['catch'](handleError(_0x16e69a,null));};exports['update']=function(_0x18e131,_0x4060a0){if(_0x18e131[_0x83bd('0x48')]['id']){delete _0x18e131[_0x83bd('0x48')]['id'];}return db[_0x83bd('0x2a')][_0x83bd('0x45')]({'where':{'id':_0x18e131[_0x83bd('0x4e')]['id']}})[_0x83bd('0x22')](handleEntityNotFound(_0x4060a0,null))[_0x83bd('0x22')](saveUpdates(_0x18e131[_0x83bd('0x48')],null))['then'](respondWithResult(_0x4060a0,null))[_0x83bd('0x46')](handleError(_0x4060a0,null));};exports[_0x83bd('0x23')]=function(_0x3ec575,_0x1d2821){return db[_0x83bd('0x2a')][_0x83bd('0x45')]({'where':{'id':_0x3ec575[_0x83bd('0x4e')]['id']}})[_0x83bd('0x22')](handleEntityNotFound(_0x1d2821,null))[_0x83bd('0x22')](removeEntity(_0x1d2821,null))[_0x83bd('0x46')](handleError(_0x1d2821,null));};exports['addInterval']=function(_0x22d0a6,_0x2bb8ba,_0x4a54c9){if(_0x22d0a6[_0x83bd('0x48')]['id']){delete _0x22d0a6[_0x83bd('0x48')]['id'];}return db[_0x83bd('0x2a')][_0x83bd('0x45')]({'where':{'id':_0x22d0a6[_0x83bd('0x4e')]['id']}})['then'](handleEntityNotFound(_0x2bb8ba,null))[_0x83bd('0x22')](function(_0x17a859){if(_0x17a859){_0x22d0a6[_0x83bd('0x48')][_0x83bd('0x4f')]=_0x17a859['id'];return db[_0x83bd('0x2a')][_0x83bd('0x47')](_0x22d0a6[_0x83bd('0x48')]);}})['then'](respondWithResult(_0x2bb8ba,null))[_0x83bd('0x46')](handleError(_0x2bb8ba,null));};exports['getIntervals']=function(_0x114e3f,_0x205799,_0xc0ffe){var _0xc6835a={};var _0x2b0a88={};var _0x321e0d;var _0x418c68;return db[_0x83bd('0x2a')][_0x83bd('0x50')]({'where':{'id':_0x114e3f['params']['id']}})[_0x83bd('0x22')](handleEntityNotFound(_0x205799,null))[_0x83bd('0x22')](function(_0x578ae5){if(_0x578ae5){_0x321e0d=_0x578ae5;_0x2b0a88[_0x83bd('0x2e')]=_[_0x83bd('0x30')](db[_0x83bd('0x2a')]['rawAttributes']);_0x2b0a88[_0x83bd('0x31')]=_[_0x83bd('0x30')](_0x114e3f[_0x83bd('0x31')]);_0x2b0a88[_0x83bd('0x32')]=_['intersection'](_0x2b0a88['model'],_0x2b0a88['query']);_0xc6835a[_0x83bd('0x34')]=_[_0x83bd('0x33')](_0x2b0a88[_0x83bd('0x2e')],qs[_0x83bd('0x35')](_0x114e3f[_0x83bd('0x31')][_0x83bd('0x35')]));_0xc6835a[_0x83bd('0x34')]=_0xc6835a[_0x83bd('0x34')][_0x83bd('0x36')]?_0xc6835a[_0x83bd('0x34')]:_0x2b0a88[_0x83bd('0x2e')];_0xc6835a[_0x83bd('0x38')]=qs['sort'](_0x114e3f[_0x83bd('0x31')][_0x83bd('0x39')]);_0xc6835a['where']=qs['filters'](_[_0x83bd('0x3b')](_0x114e3f['query'],_0x2b0a88[_0x83bd('0x32')]));if(_0x114e3f[_0x83bd('0x31')][_0x83bd('0x3c')]){_0xc6835a[_0x83bd('0x3a')]=_[_0x83bd('0x3d')](_0xc6835a['where'],{'$or':_[_0x83bd('0x29')](_0xc6835a[_0x83bd('0x34')],function(_0x43f382){var _0x8afc30={};_0x8afc30[_0x43f382]={'$like':'%'+_0x114e3f['query'][_0x83bd('0x3c')]+'%'};return _0x8afc30;})});}_0xc6835a=_['merge']({},_0xc6835a,_0x114e3f[_0x83bd('0x3f')]);return _0x321e0d[_0x83bd('0x51')](_0xc6835a);}})[_0x83bd('0x22')](function(_0x5f1f5f){if(_0x5f1f5f){_0x418c68=_0x5f1f5f[_0x83bd('0x36')];if(!_0x114e3f[_0x83bd('0x31')][_0x83bd('0x37')](_0x83bd('0x52'))){_0xc6835a[_0x83bd('0x1c')]=qs[_0x83bd('0x1c')](_0x114e3f[_0x83bd('0x31')]['limit']);_0xc6835a[_0x83bd('0x1b')]=qs[_0x83bd('0x1b')](_0x114e3f[_0x83bd('0x31')][_0x83bd('0x1b')]);}return _0x321e0d[_0x83bd('0x51')](_0xc6835a);}})[_0x83bd('0x22')](function(_0x4f3981){if(_0x4f3981){return _0x4f3981?{'count':_0x418c68,'rows':_0x4f3981}:null;}})[_0x83bd('0x22')](respondWithResult(_0x205799,null))[_0x83bd('0x46')](handleError(_0x205799,null));};exports[_0x83bd('0x53')]=function(_0x57ad8a,_0xe0e309,_0x853a75){return db[_0x83bd('0x2a')][_0x83bd('0x50')]({'where':{'id':_0x57ad8a[_0x83bd('0x4e')]['id']}})[_0x83bd('0x22')](handleEntityNotFound(_0xe0e309,null))[_0x83bd('0x22')](function(_0x47e382){if(_0x47e382){return db[_0x83bd('0x54')]['transaction'](function(_0x1f045a){return db[_0x83bd('0x2a')][_0x83bd('0x23')]({'where':{'IntervalId':_0x57ad8a[_0x83bd('0x4e')]['id']},'transaction':_0x1f045a})['then'](function(_0x4545ca){var _0x310e81=_['map'](_0x57ad8a['body'],function(_0x495071){delete _0x495071['id'];_0x495071[_0x83bd('0x4f')]=_0x57ad8a[_0x83bd('0x4e')]['id'];return _0x495071;});return db[_0x83bd('0x2a')][_0x83bd('0x55')](_0x310e81,{'transaction':_0x1f045a});});})[_0x83bd('0x22')](function(){return db['Interval'][_0x83bd('0x43')]({'where':{'IntervalId':_0x57ad8a[_0x83bd('0x4e')]['id']}});});}})[_0x83bd('0x22')](respondWithResult(_0xe0e309,null))[_0x83bd('0x46')](handleError(_0xe0e309,null));};