c48436768a6f02108405ff1bae25d1aab118a768
[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 _0xdf0e=['Content-Range','apply','reject','save','update','then','destroy','get','Intervals','UserProfileResource','sendStatus','error','name','send','index','Interval','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','offset','order','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','show','params','rawAttributes','options','find','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getIntervals','findOne','map','hasOwnProperty','addIntervals','sequelize','transaction','IntervalId','bulkCreate','html-pdf','rimraf','fast-json-patch','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../components/extensions/rewrite','status','end','json','count','limit'];(function(_0x399bf6,_0x1bd04b){var _0x1c9bd1=function(_0x58d5d1){while(--_0x58d5d1){_0x399bf6['push'](_0x399bf6['shift']());}};_0x1c9bd1(++_0x1bd04b);}(_0xdf0e,0x14f));var _0xedf0=function(_0x2defc4,_0x25dbea){_0x2defc4=_0x2defc4-0x0;var _0x10e80a=_0xdf0e[_0x2defc4];return _0x10e80a;};'use strict';var pdf=require(_0xedf0('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xedf0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xedf0('0x2'));var rp=require('request-promise');var moment=require(_0xedf0('0x3'));var BPromise=require(_0xedf0('0x4'));var Mustache=require(_0xedf0('0x5'));var util=require('util');var path=require(_0xedf0('0x6'));var sox=require('sox');var csv=require(_0xedf0('0x7'));var ejs=require(_0xedf0('0x8'));var fs=require('fs');var _=require(_0xedf0('0x9'));var squel=require(_0xedf0('0xa'));var crypto=require(_0xedf0('0xb'));var jsforce=require(_0xedf0('0xc'));var deskjs=require(_0xedf0('0xd'));var toCsv=require(_0xedf0('0x7'));var querystring=require('querystring');var Papa=require(_0xedf0('0xe'));var Redis=require('ioredis');var authService=require(_0xedf0('0xf'));var qs=require(_0xedf0('0x10'));var as=require(_0xedf0('0x11'));var hardwareService=require(_0xedf0('0x12'));var logger=require(_0xedf0('0x13'))(_0xedf0('0x14'));var utils=require(_0xedf0('0x15'));var config=require(_0xedf0('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var extensions=require(_0xedf0('0x17'));function respondWithStatusCode(_0x187992,_0x56fffe){_0x56fffe=_0x56fffe||0xcc;return function(_0x229bb2){if(_0x229bb2){return _0x187992['sendStatus'](_0x56fffe);}return _0x187992[_0xedf0('0x18')](_0x56fffe)[_0xedf0('0x19')]();};}function respondWithResult(_0x2853b6,_0x22ffad){_0x22ffad=_0x22ffad||0xc8;return function(_0x318361){if(_0x318361){return _0x2853b6[_0xedf0('0x18')](_0x22ffad)[_0xedf0('0x1a')](_0x318361);}};}function respondWithFilteredResult(_0x27b491,_0x56025d){return function(_0x24e586){if(_0x24e586){var _0xbb34ba=_0x24e586[_0xedf0('0x1b')],_0x1b9943=_0x56025d['offset'],_0x44a3af=_0x56025d['offset']+_0x56025d[_0xedf0('0x1c')],_0x32ddac;if(_0x44a3af>=_0xbb34ba){_0x44a3af=_0xbb34ba;_0x32ddac=0xc8;}else{_0x32ddac=0xce;}_0x27b491['status'](_0x32ddac);return _0x27b491['set'](_0xedf0('0x1d'),_0x1b9943+'-'+_0x44a3af+'/'+_0xbb34ba)['json'](_0x24e586);}return null;};}function patchUpdates(_0x4bbeeb){return function(_0x3c6881){try{jsonpatch[_0xedf0('0x1e')](_0x3c6881,_0x4bbeeb,!![]);}catch(_0x3e0a34){return BPromise[_0xedf0('0x1f')](_0x3e0a34);}return _0x3c6881[_0xedf0('0x20')]();};}function saveUpdates(_0x306570,_0x1c46e5){return function(_0x50057f){if(_0x50057f){return _0x50057f[_0xedf0('0x21')](_0x306570)[_0xedf0('0x22')](function(_0x2abf90){return _0x2abf90;});}return null;};}function removeEntity(_0x53c8af,_0x33dc33){return function(_0x46b7b6){if(_0x46b7b6){return _0x46b7b6[_0xedf0('0x23')]()[_0xedf0('0x22')](function(){var _0x12d36e=_0x46b7b6[_0xedf0('0x24')]({'plain':!![]});var _0x450931=_0xedf0('0x25');return db[_0xedf0('0x26')][_0xedf0('0x23')]({'where':{'type':_0x450931,'resourceId':_0x12d36e['id']}})['then'](function(){return _0x46b7b6;});})[_0xedf0('0x22')](function(){_0x53c8af[_0xedf0('0x18')](0xcc)[_0xedf0('0x19')]();});}};}function handleEntityNotFound(_0x47d24c,_0x120e1f){return function(_0x62e42){if(!_0x62e42){_0x47d24c[_0xedf0('0x27')](0x194);}return _0x62e42;};}function handleError(_0x23b514,_0x2ed9aa){_0x2ed9aa=_0x2ed9aa||0x1f4;return function(_0x474bdd){logger[_0xedf0('0x28')](_0x474bdd['stack']);if(_0x474bdd[_0xedf0('0x29')]){delete _0x474bdd[_0xedf0('0x29')];}_0x23b514[_0xedf0('0x18')](_0x2ed9aa)[_0xedf0('0x2a')](_0x474bdd);};}exports[_0xedf0('0x2b')]=function(_0x15dd1b,_0x4ca4b5){var _0x5b84b8={},_0x550b09={},_0x18f377={'count':0x0,'rows':[]};var _0x529965=_['map'](db[_0xedf0('0x2c')]['rawAttributes'],function(_0x44928d){return{'name':_0x44928d[_0xedf0('0x2d')],'type':_0x44928d['type'][_0xedf0('0x2e')]};});_0x550b09[_0xedf0('0x2f')]=_['map'](_0x529965,_0xedf0('0x29'));_0x550b09['query']=_[_0xedf0('0x30')](_0x15dd1b[_0xedf0('0x31')]);_0x550b09[_0xedf0('0x32')]=_[_0xedf0('0x33')](_0x550b09[_0xedf0('0x2f')],_0x550b09[_0xedf0('0x31')]);_0x5b84b8[_0xedf0('0x34')]=_[_0xedf0('0x33')](_0x550b09[_0xedf0('0x2f')],qs['fields'](_0x15dd1b[_0xedf0('0x31')][_0xedf0('0x35')]));_0x5b84b8['attributes']=_0x5b84b8['attributes'][_0xedf0('0x36')]?_0x5b84b8[_0xedf0('0x34')]:_0x550b09['model'];if(!_0x15dd1b[_0xedf0('0x31')]['hasOwnProperty'](_0xedf0('0x37'))){_0x5b84b8[_0xedf0('0x1c')]=qs[_0xedf0('0x1c')](_0x15dd1b[_0xedf0('0x31')][_0xedf0('0x1c')]);_0x5b84b8[_0xedf0('0x38')]=qs[_0xedf0('0x38')](_0x15dd1b['query'][_0xedf0('0x38')]);}_0x5b84b8[_0xedf0('0x39')]=qs[_0xedf0('0x3a')](_0x15dd1b['query'][_0xedf0('0x3a')]);_0x5b84b8[_0xedf0('0x3b')]=qs['filters'](_[_0xedf0('0x3c')](_0x15dd1b['query'],_0x550b09[_0xedf0('0x32')]),_0x529965);if(_0x15dd1b[_0xedf0('0x31')][_0xedf0('0x3d')]){_0x5b84b8[_0xedf0('0x3b')]=_[_0xedf0('0x3e')](_0x5b84b8[_0xedf0('0x3b')],{'$or':_['map'](_0x529965,function(_0x19a7aa){if(_0x19a7aa[_0xedf0('0x3f')]!==_0xedf0('0x40')){var _0x3d3757={};_0x3d3757[_0x19a7aa[_0xedf0('0x29')]]={'$like':'%'+_0x15dd1b[_0xedf0('0x31')][_0xedf0('0x3d')]+'%'};return _0x3d3757;}})});}_0x5b84b8=_[_0xedf0('0x3e')]({},_0x5b84b8,_0x15dd1b['options']);var _0xf3a682={'where':_0x5b84b8[_0xedf0('0x3b')]};return db['Interval']['count'](_0xf3a682)[_0xedf0('0x22')](function(_0x4416ad){_0x18f377[_0xedf0('0x1b')]=_0x4416ad;if(_0x15dd1b['query'][_0xedf0('0x41')]){_0x5b84b8[_0xedf0('0x42')]=[{'all':!![]}];}return db[_0xedf0('0x2c')]['findAll'](_0x5b84b8);})[_0xedf0('0x22')](function(_0x2d9636){_0x18f377['rows']=_0x2d9636;return _0x18f377;})[_0xedf0('0x22')](respondWithFilteredResult(_0x4ca4b5,_0x5b84b8))['catch'](handleError(_0x4ca4b5,null));};exports[_0xedf0('0x43')]=function(_0x3b2a63,_0x380888){var _0x14f43a={'raw':!![],'where':{'id':_0x3b2a63[_0xedf0('0x44')]['id']}},_0x15c0e7={};_0x15c0e7['model']=_[_0xedf0('0x30')](db['Interval'][_0xedf0('0x45')]);_0x15c0e7[_0xedf0('0x31')]=_[_0xedf0('0x30')](_0x3b2a63[_0xedf0('0x31')]);_0x15c0e7[_0xedf0('0x32')]=_['intersection'](_0x15c0e7['model'],_0x15c0e7[_0xedf0('0x31')]);_0x14f43a[_0xedf0('0x34')]=_[_0xedf0('0x33')](_0x15c0e7[_0xedf0('0x2f')],qs[_0xedf0('0x35')](_0x3b2a63[_0xedf0('0x31')]['fields']));_0x14f43a[_0xedf0('0x34')]=_0x14f43a[_0xedf0('0x34')][_0xedf0('0x36')]?_0x14f43a[_0xedf0('0x34')]:_0x15c0e7[_0xedf0('0x2f')];if(_0x3b2a63[_0xedf0('0x31')][_0xedf0('0x41')]){_0x14f43a[_0xedf0('0x42')]=[{'all':!![]}];}_0x14f43a=_['merge']({},_0x14f43a,_0x3b2a63[_0xedf0('0x46')]);return db[_0xedf0('0x2c')][_0xedf0('0x47')](_0x14f43a)[_0xedf0('0x22')](handleEntityNotFound(_0x380888,null))[_0xedf0('0x22')](respondWithResult(_0x380888,null))[_0xedf0('0x48')](handleError(_0x380888,null));};exports['create']=function(_0x20f2b8,_0x4de79e){return db[_0xedf0('0x2c')]['create'](_0x20f2b8[_0xedf0('0x49')],{})[_0xedf0('0x22')](function(_0x3175f){var _0x14ec52=_0x20f2b8[_0xedf0('0x4a')][_0xedf0('0x24')]({'plain':!![]});if(!_0x14ec52)throw new Error(_0xedf0('0x4b'));if(_0x14ec52[_0xedf0('0x4c')]==='user'){var _0x35a280=_0x3175f[_0xedf0('0x24')]({'plain':!![]});var _0x489c30=_0xedf0('0x25');return db[_0xedf0('0x4d')][_0xedf0('0x47')]({'where':{'name':_0x489c30,'userProfileId':_0x14ec52[_0xedf0('0x4e')]},'raw':!![]})[_0xedf0('0x22')](function(_0x1ca2cb){if(_0x1ca2cb&&_0x1ca2cb[_0xedf0('0x4f')]===0x0){return db[_0xedf0('0x26')][_0xedf0('0x50')]({'name':_0x35a280[_0xedf0('0x29')],'resourceId':_0x35a280['id'],'type':_0x1ca2cb['name'],'sectionId':_0x1ca2cb['id']},{})[_0xedf0('0x22')](function(){return _0x3175f;});}else{return _0x3175f;}})['catch'](function(_0x1bacd4){logger[_0xedf0('0x28')](_0xedf0('0x51'),_0x1bacd4);throw _0x1bacd4;});}return _0x3175f;})['then'](respondWithResult(_0x4de79e,0xc9))[_0xedf0('0x48')](handleError(_0x4de79e,null));};exports[_0xedf0('0x21')]=function(_0x84fdcc,_0x183350){if(_0x84fdcc[_0xedf0('0x49')]['id']){delete _0x84fdcc[_0xedf0('0x49')]['id'];}return db[_0xedf0('0x2c')]['find']({'where':{'id':_0x84fdcc['params']['id']}})[_0xedf0('0x22')](handleEntityNotFound(_0x183350,null))[_0xedf0('0x22')](saveUpdates(_0x84fdcc['body'],null))['then'](respondWithResult(_0x183350,null))[_0xedf0('0x48')](handleError(_0x183350,null));};exports[_0xedf0('0x23')]=function(_0x59fca6,_0x40fa0c){return db['Interval'][_0xedf0('0x47')]({'where':{'id':_0x59fca6[_0xedf0('0x44')]['id']}})[_0xedf0('0x22')](handleEntityNotFound(_0x40fa0c,null))[_0xedf0('0x22')](removeEntity(_0x40fa0c,null))[_0xedf0('0x48')](handleError(_0x40fa0c,null));};exports['addInterval']=function(_0x14f493,_0x110cdb,_0x4346f9){if(_0x14f493['body']['id']){delete _0x14f493[_0xedf0('0x49')]['id'];}return db[_0xedf0('0x2c')][_0xedf0('0x47')]({'where':{'id':_0x14f493[_0xedf0('0x44')]['id']}})[_0xedf0('0x22')](handleEntityNotFound(_0x110cdb,null))[_0xedf0('0x22')](function(_0x490e90){if(_0x490e90){_0x14f493['body']['IntervalId']=_0x490e90['id'];return db['Interval'][_0xedf0('0x50')](_0x14f493[_0xedf0('0x49')]);}})[_0xedf0('0x22')](respondWithResult(_0x110cdb,null))[_0xedf0('0x48')](handleError(_0x110cdb,null));};exports[_0xedf0('0x52')]=function(_0x3295dd,_0xe9ae73,_0x58ce2c){var _0x1a0bb8={};var _0x14b577={};var _0x32a6e9;var _0x24216b;return db[_0xedf0('0x2c')][_0xedf0('0x53')]({'where':{'id':_0x3295dd[_0xedf0('0x44')]['id']}})[_0xedf0('0x22')](handleEntityNotFound(_0xe9ae73,null))[_0xedf0('0x22')](function(_0x2f408d){if(_0x2f408d){_0x32a6e9=_0x2f408d;_0x14b577['model']=_[_0xedf0('0x30')](db[_0xedf0('0x2c')][_0xedf0('0x45')]);_0x14b577[_0xedf0('0x31')]=_[_0xedf0('0x30')](_0x3295dd['query']);_0x14b577[_0xedf0('0x32')]=_[_0xedf0('0x33')](_0x14b577[_0xedf0('0x2f')],_0x14b577['query']);_0x1a0bb8[_0xedf0('0x34')]=_[_0xedf0('0x33')](_0x14b577[_0xedf0('0x2f')],qs[_0xedf0('0x35')](_0x3295dd['query'][_0xedf0('0x35')]));_0x1a0bb8['attributes']=_0x1a0bb8[_0xedf0('0x34')][_0xedf0('0x36')]?_0x1a0bb8[_0xedf0('0x34')]:_0x14b577['model'];_0x1a0bb8[_0xedf0('0x39')]=qs[_0xedf0('0x3a')](_0x3295dd['query'][_0xedf0('0x3a')]);_0x1a0bb8['where']=qs[_0xedf0('0x32')](_[_0xedf0('0x3c')](_0x3295dd[_0xedf0('0x31')],_0x14b577[_0xedf0('0x32')]));if(_0x3295dd['query'][_0xedf0('0x3d')]){_0x1a0bb8[_0xedf0('0x3b')]=_['merge'](_0x1a0bb8[_0xedf0('0x3b')],{'$or':_[_0xedf0('0x54')](_0x1a0bb8[_0xedf0('0x34')],function(_0x368db6){var _0x52f0f0={};_0x52f0f0[_0x368db6]={'$like':'%'+_0x3295dd[_0xedf0('0x31')]['filter']+'%'};return _0x52f0f0;})});}_0x1a0bb8=_['merge']({},_0x1a0bb8,_0x3295dd[_0xedf0('0x46')]);return _0x32a6e9[_0xedf0('0x52')](_0x1a0bb8);}})[_0xedf0('0x22')](function(_0x2a1a23){if(_0x2a1a23){_0x24216b=_0x2a1a23[_0xedf0('0x36')];if(!_0x3295dd[_0xedf0('0x31')][_0xedf0('0x55')](_0xedf0('0x37'))){_0x1a0bb8[_0xedf0('0x1c')]=qs[_0xedf0('0x1c')](_0x3295dd['query']['limit']);_0x1a0bb8[_0xedf0('0x38')]=qs[_0xedf0('0x38')](_0x3295dd[_0xedf0('0x31')]['offset']);}return _0x32a6e9[_0xedf0('0x52')](_0x1a0bb8);}})[_0xedf0('0x22')](function(_0x3d47c7){if(_0x3d47c7){return _0x3d47c7?{'count':_0x24216b,'rows':_0x3d47c7}:null;}})['then'](respondWithResult(_0xe9ae73,null))[_0xedf0('0x48')](handleError(_0xe9ae73,null));};exports[_0xedf0('0x56')]=function(_0x35b705,_0x277bec,_0x3fb797){return db[_0xedf0('0x2c')]['findOne']({'where':{'id':_0x35b705[_0xedf0('0x44')]['id']}})[_0xedf0('0x22')](handleEntityNotFound(_0x277bec,null))[_0xedf0('0x22')](function(_0x476616){if(_0x476616){return db[_0xedf0('0x57')][_0xedf0('0x58')](function(_0x80c2cf){return db[_0xedf0('0x2c')][_0xedf0('0x23')]({'where':{'IntervalId':_0x35b705['params']['id']},'transaction':_0x80c2cf})[_0xedf0('0x22')](function(_0xb0af10){var _0x23727f=_[_0xedf0('0x54')](_0x35b705['body'],function(_0x84dacf){delete _0x84dacf['id'];_0x84dacf[_0xedf0('0x59')]=_0x35b705[_0xedf0('0x44')]['id'];return _0x84dacf;});return db[_0xedf0('0x2c')][_0xedf0('0x5a')](_0x23727f,{'transaction':_0x80c2cf});});})[_0xedf0('0x22')](function(){return db[_0xedf0('0x2c')]['findAll']({'where':{'IntervalId':_0x35b705[_0xedf0('0x44')]['id']}});});}})['then'](respondWithResult(_0x277bec,null))[_0xedf0('0x48')](handleError(_0x277bec,null));};