28c778da9e40a7f7eb3664a86a50f53b9a7ec512
[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 _0xfecb=['sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Intervals','error','name','send','index','map','Interval','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','getIntervals','findOne','filter','sequelize','IntervalId','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite'];(function(_0x2cdcf9,_0x8a09d1){var _0x39412d=function(_0x7b476e){while(--_0x7b476e){_0x2cdcf9['push'](_0x2cdcf9['shift']());}};_0x39412d(++_0x8a09d1);}(_0xfecb,0x1cc));var _0xbfec=function(_0x1787ee,_0x436390){_0x1787ee=_0x1787ee-0x0;var _0x16c786=_0xfecb[_0x1787ee];return _0x16c786;};'use strict';var emlformat=require(_0xbfec('0x0'));var rimraf=require(_0xbfec('0x1'));var zipdir=require(_0xbfec('0x2'));var jsonpatch=require(_0xbfec('0x3'));var rp=require(_0xbfec('0x4'));var moment=require(_0xbfec('0x5'));var BPromise=require(_0xbfec('0x6'));var Mustache=require(_0xbfec('0x7'));var util=require(_0xbfec('0x8'));var path=require(_0xbfec('0x9'));var sox=require(_0xbfec('0xa'));var csv=require(_0xbfec('0xb'));var ejs=require(_0xbfec('0xc'));var fs=require('fs');var fs_extra=require(_0xbfec('0xd'));var _=require('lodash');var squel=require(_0xbfec('0xe'));var crypto=require(_0xbfec('0xf'));var jsforce=require(_0xbfec('0x10'));var deskjs=require(_0xbfec('0x11'));var toCsv=require(_0xbfec('0xb'));var querystring=require(_0xbfec('0x12'));var Papa=require(_0xbfec('0x13'));var Redis=require(_0xbfec('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xbfec('0x15'));var as=require(_0xbfec('0x16'));var hardwareService=require(_0xbfec('0x17'));var logger=require(_0xbfec('0x18'))(_0xbfec('0x19'));var utils=require(_0xbfec('0x1a'));var config=require(_0xbfec('0x1b'));var licenseUtil=require('../../config/license/util');var db=require(_0xbfec('0x1c'))['db'];var extensions=require(_0xbfec('0x1d'));function respondWithStatusCode(_0x1da3eb,_0x3f3bdb){_0x3f3bdb=_0x3f3bdb||0xcc;return function(_0x3d2493){if(_0x3d2493){return _0x1da3eb[_0xbfec('0x1e')](_0x3f3bdb);}return _0x1da3eb[_0xbfec('0x1f')](_0x3f3bdb)[_0xbfec('0x20')]();};}function respondWithResult(_0x1a618b,_0x417569){_0x417569=_0x417569||0xc8;return function(_0x1cb896){if(_0x1cb896){return _0x1a618b[_0xbfec('0x1f')](_0x417569)[_0xbfec('0x21')](_0x1cb896);}};}function respondWithFilteredResult(_0x3d9dcc,_0x421037){return function(_0x289273){if(_0x289273){var _0x24b605=typeof _0x421037[_0xbfec('0x22')]===_0xbfec('0x23')&&typeof _0x421037[_0xbfec('0x24')]==='undefined';var _0x30a662=_0x289273['count'];var _0x1c6a10=_0x24b605?0x0:_0x421037[_0xbfec('0x22')];var _0x1bddb6=_0x24b605?_0x289273[_0xbfec('0x25')]:_0x421037[_0xbfec('0x22')]+_0x421037[_0xbfec('0x24')];var _0x12adff;if(_0x1bddb6>=_0x30a662){_0x1bddb6=_0x30a662;_0x12adff=0xc8;}else{_0x12adff=0xce;}_0x3d9dcc['status'](_0x12adff);return _0x3d9dcc[_0xbfec('0x26')](_0xbfec('0x27'),_0x1c6a10+'-'+_0x1bddb6+'/'+_0x30a662)[_0xbfec('0x21')](_0x289273);}return null;};}function patchUpdates(_0x12fd66){return function(_0xb6ca2e){try{jsonpatch[_0xbfec('0x28')](_0xb6ca2e,_0x12fd66,!![]);}catch(_0x4be708){return BPromise[_0xbfec('0x29')](_0x4be708);}return _0xb6ca2e[_0xbfec('0x2a')]();};}function saveUpdates(_0x18ebae,_0xaf1515){return function(_0xb25913){if(_0xb25913){return _0xb25913[_0xbfec('0x2b')](_0x18ebae)[_0xbfec('0x2c')](function(_0x8eaae7){return _0x8eaae7;});}return null;};}function removeEntity(_0x26e1d0,_0x17bd4e){return function(_0x21f9f3){if(_0x21f9f3){return _0x21f9f3[_0xbfec('0x2d')]()['then'](function(){var _0x48ef20=_0x21f9f3[_0xbfec('0x2e')]({'plain':!![]});var _0x318a6b=_0xbfec('0x2f');return db['UserProfileResource'][_0xbfec('0x2d')]({'where':{'type':_0x318a6b,'resourceId':_0x48ef20['id']}})['then'](function(){return _0x21f9f3;});})[_0xbfec('0x2c')](function(){_0x26e1d0[_0xbfec('0x1f')](0xcc)[_0xbfec('0x20')]();});}};}function handleEntityNotFound(_0x18358d,_0x19060e){return function(_0x58e035){if(!_0x58e035){_0x18358d['sendStatus'](0x194);}return _0x58e035;};}function handleError(_0x1a9b4e,_0x406957){_0x406957=_0x406957||0x1f4;return function(_0xbb6880){logger[_0xbfec('0x30')](_0xbb6880['stack']);if(_0xbb6880['name']){delete _0xbb6880[_0xbfec('0x31')];}_0x1a9b4e[_0xbfec('0x1f')](_0x406957)[_0xbfec('0x32')](_0xbb6880);};}exports[_0xbfec('0x33')]=function(_0x2a89fb,_0x5ced9a){var _0x3796d5={},_0x37c945={},_0x3c9de9={'count':0x0,'rows':[]};var _0x11509b=_[_0xbfec('0x34')](db[_0xbfec('0x35')][_0xbfec('0x36')],function(_0x2bd625){return{'name':_0x2bd625[_0xbfec('0x37')],'type':_0x2bd625[_0xbfec('0x38')][_0xbfec('0x39')]};});_0x37c945['model']=_[_0xbfec('0x34')](_0x11509b,_0xbfec('0x31'));_0x37c945['query']=_[_0xbfec('0x3a')](_0x2a89fb[_0xbfec('0x3b')]);_0x37c945[_0xbfec('0x3c')]=_[_0xbfec('0x3d')](_0x37c945[_0xbfec('0x3e')],_0x37c945['query']);_0x3796d5[_0xbfec('0x3f')]=_['intersection'](_0x37c945[_0xbfec('0x3e')],qs['fields'](_0x2a89fb['query'][_0xbfec('0x40')]));_0x3796d5[_0xbfec('0x3f')]=_0x3796d5[_0xbfec('0x3f')][_0xbfec('0x41')]?_0x3796d5[_0xbfec('0x3f')]:_0x37c945['model'];if(!_0x2a89fb[_0xbfec('0x3b')][_0xbfec('0x42')](_0xbfec('0x43'))){_0x3796d5['limit']=qs[_0xbfec('0x24')](_0x2a89fb[_0xbfec('0x3b')][_0xbfec('0x24')]);_0x3796d5[_0xbfec('0x22')]=qs[_0xbfec('0x22')](_0x2a89fb[_0xbfec('0x3b')][_0xbfec('0x22')]);}_0x3796d5[_0xbfec('0x44')]=qs[_0xbfec('0x45')](_0x2a89fb['query'][_0xbfec('0x45')]);_0x3796d5[_0xbfec('0x46')]=qs[_0xbfec('0x3c')](_[_0xbfec('0x47')](_0x2a89fb[_0xbfec('0x3b')],_0x37c945[_0xbfec('0x3c')]),_0x11509b);if(_0x2a89fb[_0xbfec('0x3b')]['filter']){_0x3796d5['where']=_['merge'](_0x3796d5[_0xbfec('0x46')],{'$or':_['map'](_0x11509b,function(_0xc465b9){if(_0xc465b9[_0xbfec('0x38')]!==_0xbfec('0x48')){var _0x105298={};_0x105298[_0xc465b9['name']]={'$like':'%'+_0x2a89fb[_0xbfec('0x3b')]['filter']+'%'};return _0x105298;}})});}_0x3796d5=_[_0xbfec('0x49')]({},_0x3796d5,_0x2a89fb[_0xbfec('0x4a')]);var _0x5d30b5={'where':_0x3796d5['where']};return db[_0xbfec('0x35')]['count'](_0x5d30b5)['then'](function(_0x328441){_0x3c9de9[_0xbfec('0x25')]=_0x328441;if(_0x2a89fb[_0xbfec('0x3b')][_0xbfec('0x4b')]){_0x3796d5['include']=[{'all':!![]}];}return db[_0xbfec('0x35')][_0xbfec('0x4c')](_0x3796d5);})[_0xbfec('0x2c')](function(_0x322c47){_0x3c9de9[_0xbfec('0x4d')]=_0x322c47;return _0x3c9de9;})['then'](respondWithFilteredResult(_0x5ced9a,_0x3796d5))[_0xbfec('0x4e')](handleError(_0x5ced9a,null));};exports[_0xbfec('0x4f')]=function(_0x4f74b3,_0x12a57c){var _0x267ac5={'raw':!![],'where':{'id':_0x4f74b3[_0xbfec('0x50')]['id']}},_0x5d6ded={};_0x5d6ded['model']=_[_0xbfec('0x3a')](db['Interval'][_0xbfec('0x36')]);_0x5d6ded[_0xbfec('0x3b')]=_['keys'](_0x4f74b3[_0xbfec('0x3b')]);_0x5d6ded['filters']=_[_0xbfec('0x3d')](_0x5d6ded[_0xbfec('0x3e')],_0x5d6ded['query']);_0x267ac5[_0xbfec('0x3f')]=_[_0xbfec('0x3d')](_0x5d6ded[_0xbfec('0x3e')],qs[_0xbfec('0x40')](_0x4f74b3[_0xbfec('0x3b')][_0xbfec('0x40')]));_0x267ac5[_0xbfec('0x3f')]=_0x267ac5[_0xbfec('0x3f')][_0xbfec('0x41')]?_0x267ac5[_0xbfec('0x3f')]:_0x5d6ded[_0xbfec('0x3e')];if(_0x4f74b3['query'][_0xbfec('0x4b')]){_0x267ac5['include']=[{'all':!![]}];}_0x267ac5=_['merge']({},_0x267ac5,_0x4f74b3[_0xbfec('0x4a')]);return db[_0xbfec('0x35')][_0xbfec('0x51')](_0x267ac5)[_0xbfec('0x2c')](handleEntityNotFound(_0x12a57c,null))[_0xbfec('0x2c')](respondWithResult(_0x12a57c,null))['catch'](handleError(_0x12a57c,null));};exports[_0xbfec('0x52')]=function(_0x21a00d,_0x42b6bb){return db[_0xbfec('0x35')][_0xbfec('0x52')](_0x21a00d[_0xbfec('0x53')],{})[_0xbfec('0x2c')](function(_0xc8015c){var _0x84c83f=_0x21a00d[_0xbfec('0x54')][_0xbfec('0x2e')]({'plain':!![]});if(!_0x84c83f)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x84c83f[_0xbfec('0x55')]===_0xbfec('0x54')){var _0xfe3890=_0xc8015c[_0xbfec('0x2e')]({'plain':!![]});var _0x3f73d9=_0xbfec('0x2f');return db[_0xbfec('0x56')][_0xbfec('0x51')]({'where':{'name':_0x3f73d9,'userProfileId':_0x84c83f[_0xbfec('0x57')]},'raw':!![]})['then'](function(_0x3b9378){if(_0x3b9378&&_0x3b9378[_0xbfec('0x58')]===0x0){return db[_0xbfec('0x59')][_0xbfec('0x52')]({'name':_0xfe3890['name'],'resourceId':_0xfe3890['id'],'type':_0x3b9378[_0xbfec('0x31')],'sectionId':_0x3b9378['id']},{})[_0xbfec('0x2c')](function(){return _0xc8015c;});}else{return _0xc8015c;}})[_0xbfec('0x4e')](function(_0x22eb31){logger[_0xbfec('0x30')](_0xbfec('0x5a'),_0x22eb31);throw _0x22eb31;});}return _0xc8015c;})[_0xbfec('0x2c')](respondWithResult(_0x42b6bb,0xc9))['catch'](handleError(_0x42b6bb,null));};exports[_0xbfec('0x2b')]=function(_0x49c451,_0x3277c3){if(_0x49c451['body']['id']){delete _0x49c451['body']['id'];}return db[_0xbfec('0x35')][_0xbfec('0x51')]({'where':{'id':_0x49c451['params']['id']}})['then'](handleEntityNotFound(_0x3277c3,null))[_0xbfec('0x2c')](saveUpdates(_0x49c451[_0xbfec('0x53')],null))['then'](respondWithResult(_0x3277c3,null))[_0xbfec('0x4e')](handleError(_0x3277c3,null));};exports['destroy']=function(_0x29cb18,_0x196257){return db[_0xbfec('0x35')][_0xbfec('0x51')]({'where':{'id':_0x29cb18[_0xbfec('0x50')]['id']}})['then'](handleEntityNotFound(_0x196257,null))[_0xbfec('0x2c')](removeEntity(_0x196257,null))[_0xbfec('0x4e')](handleError(_0x196257,null));};exports[_0xbfec('0x5b')]=function(_0x33df2c,_0x3982ec,_0x369d90){if(_0x33df2c[_0xbfec('0x53')]['id']){delete _0x33df2c[_0xbfec('0x53')]['id'];}return db[_0xbfec('0x35')][_0xbfec('0x51')]({'where':{'id':_0x33df2c[_0xbfec('0x50')]['id']}})[_0xbfec('0x2c')](handleEntityNotFound(_0x3982ec,null))['then'](function(_0x5ea15d){if(_0x5ea15d){_0x33df2c[_0xbfec('0x53')]['IntervalId']=_0x5ea15d['id'];return db['Interval']['create'](_0x33df2c[_0xbfec('0x53')]);}})[_0xbfec('0x2c')](respondWithResult(_0x3982ec,null))[_0xbfec('0x4e')](handleError(_0x3982ec,null));};exports[_0xbfec('0x5c')]=function(_0x5a69ac,_0x138269,_0x14ea80){var _0x23b6f7={};var _0x3a0638={};var _0x19b8d7;var _0x2a1ce6;return db[_0xbfec('0x35')][_0xbfec('0x5d')]({'where':{'id':_0x5a69ac[_0xbfec('0x50')]['id']}})[_0xbfec('0x2c')](handleEntityNotFound(_0x138269,null))[_0xbfec('0x2c')](function(_0x58ac6d){if(_0x58ac6d){_0x19b8d7=_0x58ac6d;_0x3a0638['model']=_[_0xbfec('0x3a')](db['Interval']['rawAttributes']);_0x3a0638[_0xbfec('0x3b')]=_[_0xbfec('0x3a')](_0x5a69ac[_0xbfec('0x3b')]);_0x3a0638[_0xbfec('0x3c')]=_[_0xbfec('0x3d')](_0x3a0638[_0xbfec('0x3e')],_0x3a0638['query']);_0x23b6f7[_0xbfec('0x3f')]=_[_0xbfec('0x3d')](_0x3a0638[_0xbfec('0x3e')],qs[_0xbfec('0x40')](_0x5a69ac['query'][_0xbfec('0x40')]));_0x23b6f7[_0xbfec('0x3f')]=_0x23b6f7['attributes'][_0xbfec('0x41')]?_0x23b6f7[_0xbfec('0x3f')]:_0x3a0638['model'];_0x23b6f7[_0xbfec('0x44')]=qs[_0xbfec('0x45')](_0x5a69ac['query'][_0xbfec('0x45')]);_0x23b6f7[_0xbfec('0x46')]=qs[_0xbfec('0x3c')](_[_0xbfec('0x47')](_0x5a69ac[_0xbfec('0x3b')],_0x3a0638[_0xbfec('0x3c')]));if(_0x5a69ac[_0xbfec('0x3b')][_0xbfec('0x5e')]){_0x23b6f7[_0xbfec('0x46')]=_['merge'](_0x23b6f7[_0xbfec('0x46')],{'$or':_[_0xbfec('0x34')](_0x23b6f7['attributes'],function(_0x32a645){var _0x2e274d={};_0x2e274d[_0x32a645]={'$like':'%'+_0x5a69ac[_0xbfec('0x3b')]['filter']+'%'};return _0x2e274d;})});}_0x23b6f7=_['merge']({},_0x23b6f7,_0x5a69ac[_0xbfec('0x4a')]);return _0x19b8d7[_0xbfec('0x5c')](_0x23b6f7);}})[_0xbfec('0x2c')](function(_0x3a9c14){if(_0x3a9c14){_0x2a1ce6=_0x3a9c14[_0xbfec('0x41')];if(!_0x5a69ac['query']['hasOwnProperty'](_0xbfec('0x43'))){_0x23b6f7['limit']=qs[_0xbfec('0x24')](_0x5a69ac[_0xbfec('0x3b')][_0xbfec('0x24')]);_0x23b6f7[_0xbfec('0x22')]=qs['offset'](_0x5a69ac[_0xbfec('0x3b')]['offset']);}return _0x19b8d7['getIntervals'](_0x23b6f7);}})[_0xbfec('0x2c')](function(_0x25275b){if(_0x25275b){return _0x25275b?{'count':_0x2a1ce6,'rows':_0x25275b}:null;}})['then'](respondWithResult(_0x138269,null))[_0xbfec('0x4e')](handleError(_0x138269,null));};exports['addIntervals']=function(_0x12759f,_0x526c7d,_0x13f823){return db[_0xbfec('0x35')][_0xbfec('0x5d')]({'where':{'id':_0x12759f[_0xbfec('0x50')]['id']}})['then'](handleEntityNotFound(_0x526c7d,null))[_0xbfec('0x2c')](function(_0x5317c6){if(_0x5317c6){return db[_0xbfec('0x5f')]['transaction'](function(_0x1b97ea){return db[_0xbfec('0x35')][_0xbfec('0x2d')]({'where':{'IntervalId':_0x12759f[_0xbfec('0x50')]['id']},'transaction':_0x1b97ea})[_0xbfec('0x2c')](function(_0x5d1a6c){var _0x5661e8=_['map'](_0x12759f['body'],function(_0x275a28){delete _0x275a28['id'];_0x275a28[_0xbfec('0x60')]=_0x12759f[_0xbfec('0x50')]['id'];return _0x275a28;});return db['Interval'][_0xbfec('0x61')](_0x5661e8,{'transaction':_0x1b97ea});});})['then'](function(){return db['Interval'][_0xbfec('0x4c')]({'where':{'IntervalId':_0x12759f[_0xbfec('0x50')]['id']}});});}})[_0xbfec('0x2c')](respondWithResult(_0x526c7d,null))[_0xbfec('0x4e')](handleError(_0x526c7d,null));};