Built motion from commit 953226e6.|2.6.32
[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 _0xa099=['length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','findAll','rows','fields','include','options','create','body','user','role','UserProfileSection','find','autoAssociation','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addInterval','getIntervals','findOne','addIntervals','sequelize','destroy','bulkCreate','rimraf','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','get','Intervals','UserProfileResource','stack','name','index','map','Interval','fieldName','type','key','model','query','keys','filters','intersection','attributes'];(function(_0x527827,_0x29b389){var _0x2360b8=function(_0x24fe5b){while(--_0x24fe5b){_0x527827['push'](_0x527827['shift']());}};_0x2360b8(++_0x29b389);}(_0xa099,0x76));var _0x9a09=function(_0x5c8112,_0x2b2b40){_0x5c8112=_0x5c8112-0x0;var _0x4042c6=_0xa099[_0x5c8112];return _0x4042c6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9a09('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9a09('0x1'));var moment=require(_0x9a09('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9a09('0x3'));var path=require(_0x9a09('0x4'));var sox=require(_0x9a09('0x5'));var csv=require(_0x9a09('0x6'));var ejs=require(_0x9a09('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9a09('0x8'));var squel=require(_0x9a09('0x9'));var crypto=require(_0x9a09('0xa'));var jsforce=require(_0x9a09('0xb'));var deskjs=require(_0x9a09('0xc'));var toCsv=require('to-csv');var querystring=require(_0x9a09('0xd'));var Papa=require('papaparse');var Redis=require(_0x9a09('0xe'));var authService=require(_0x9a09('0xf'));var qs=require(_0x9a09('0x10'));var as=require(_0x9a09('0x11'));var hardwareService=require(_0x9a09('0x12'));var logger=require(_0x9a09('0x13'))('api');var utils=require(_0x9a09('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x9a09('0x15'));var db=require(_0x9a09('0x16'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x1e5ee6,_0x2170c1){_0x2170c1=_0x2170c1||0xcc;return function(_0x36b548){if(_0x36b548){return _0x1e5ee6[_0x9a09('0x17')](_0x2170c1);}return _0x1e5ee6[_0x9a09('0x18')](_0x2170c1)[_0x9a09('0x19')]();};}function respondWithResult(_0x5a1772,_0x3365b3){_0x3365b3=_0x3365b3||0xc8;return function(_0x3dc395){if(_0x3dc395){return _0x5a1772[_0x9a09('0x18')](_0x3365b3)[_0x9a09('0x1a')](_0x3dc395);}};}function respondWithFilteredResult(_0x2fe91a,_0x56d1a6){return function(_0x3c3c98){if(_0x3c3c98){var _0x1c068f=typeof _0x56d1a6[_0x9a09('0x1b')]==='undefined'&&typeof _0x56d1a6[_0x9a09('0x1c')]===_0x9a09('0x1d');var _0x4f1666=_0x3c3c98[_0x9a09('0x1e')];var _0x16b267=_0x1c068f?0x0:_0x56d1a6[_0x9a09('0x1b')];var _0x5e1d9c=_0x1c068f?_0x3c3c98[_0x9a09('0x1e')]:_0x56d1a6['offset']+_0x56d1a6['limit'];var _0x14803c;if(_0x5e1d9c>=_0x4f1666){_0x5e1d9c=_0x4f1666;_0x14803c=0xc8;}else{_0x14803c=0xce;}_0x2fe91a[_0x9a09('0x18')](_0x14803c);return _0x2fe91a[_0x9a09('0x1f')](_0x9a09('0x20'),_0x16b267+'-'+_0x5e1d9c+'/'+_0x4f1666)['json'](_0x3c3c98);}return null;};}function patchUpdates(_0x1a0763){return function(_0x257740){try{jsonpatch['apply'](_0x257740,_0x1a0763,!![]);}catch(_0x27a8ec){return BPromise[_0x9a09('0x21')](_0x27a8ec);}return _0x257740[_0x9a09('0x22')]();};}function saveUpdates(_0x571c98,_0xdfb57c){return function(_0x1c51d3){if(_0x1c51d3){return _0x1c51d3[_0x9a09('0x23')](_0x571c98)[_0x9a09('0x24')](function(_0x2f7780){return _0x2f7780;});}return null;};}function removeEntity(_0x4b2b11,_0x3162eb){return function(_0x530c9b){if(_0x530c9b){return _0x530c9b['destroy']()[_0x9a09('0x24')](function(){var _0xc84f68=_0x530c9b[_0x9a09('0x25')]({'plain':!![]});var _0x207ebd=_0x9a09('0x26');return db[_0x9a09('0x27')]['destroy']({'where':{'type':_0x207ebd,'resourceId':_0xc84f68['id']}})[_0x9a09('0x24')](function(){return _0x530c9b;});})[_0x9a09('0x24')](function(){_0x4b2b11[_0x9a09('0x18')](0xcc)[_0x9a09('0x19')]();});}};}function handleEntityNotFound(_0x444d6c,_0x337c9a){return function(_0x53ace7){if(!_0x53ace7){_0x444d6c[_0x9a09('0x17')](0x194);}return _0x53ace7;};}function handleError(_0x51b851,_0x55a0af){_0x55a0af=_0x55a0af||0x1f4;return function(_0x564631){logger['error'](_0x564631[_0x9a09('0x28')]);if(_0x564631[_0x9a09('0x29')]){delete _0x564631['name'];}_0x51b851[_0x9a09('0x18')](_0x55a0af)['send'](_0x564631);};}exports[_0x9a09('0x2a')]=function(_0x2f80a7,_0x210b15){var _0x2f851f={},_0x4b107f={},_0x4eb106={'count':0x0,'rows':[]};var _0x30d6c8=_[_0x9a09('0x2b')](db[_0x9a09('0x2c')]['rawAttributes'],function(_0x2e23c9){return{'name':_0x2e23c9[_0x9a09('0x2d')],'type':_0x2e23c9[_0x9a09('0x2e')][_0x9a09('0x2f')]};});_0x4b107f[_0x9a09('0x30')]=_[_0x9a09('0x2b')](_0x30d6c8,'name');_0x4b107f[_0x9a09('0x31')]=_[_0x9a09('0x32')](_0x2f80a7[_0x9a09('0x31')]);_0x4b107f[_0x9a09('0x33')]=_[_0x9a09('0x34')](_0x4b107f[_0x9a09('0x30')],_0x4b107f[_0x9a09('0x31')]);_0x2f851f[_0x9a09('0x35')]=_['intersection'](_0x4b107f[_0x9a09('0x30')],qs['fields'](_0x2f80a7[_0x9a09('0x31')]['fields']));_0x2f851f[_0x9a09('0x35')]=_0x2f851f['attributes'][_0x9a09('0x36')]?_0x2f851f['attributes']:_0x4b107f['model'];if(!_0x2f80a7['query'][_0x9a09('0x37')](_0x9a09('0x38'))){_0x2f851f[_0x9a09('0x1c')]=qs[_0x9a09('0x1c')](_0x2f80a7['query'][_0x9a09('0x1c')]);_0x2f851f[_0x9a09('0x1b')]=qs[_0x9a09('0x1b')](_0x2f80a7[_0x9a09('0x31')][_0x9a09('0x1b')]);}_0x2f851f[_0x9a09('0x39')]=qs[_0x9a09('0x3a')](_0x2f80a7['query']['sort']);_0x2f851f[_0x9a09('0x3b')]=qs[_0x9a09('0x33')](_[_0x9a09('0x3c')](_0x2f80a7[_0x9a09('0x31')],_0x4b107f['filters']),_0x30d6c8);if(_0x2f80a7[_0x9a09('0x31')][_0x9a09('0x3d')]){_0x2f851f[_0x9a09('0x3b')]=_['merge'](_0x2f851f[_0x9a09('0x3b')],{'$or':_[_0x9a09('0x2b')](_0x30d6c8,function(_0x356be0){if(_0x356be0['type']!=='VIRTUAL'){var _0x238ac7={};_0x238ac7[_0x356be0['name']]={'$like':'%'+_0x2f80a7[_0x9a09('0x31')][_0x9a09('0x3d')]+'%'};return _0x238ac7;}})});}_0x2f851f=_[_0x9a09('0x3e')]({},_0x2f851f,_0x2f80a7['options']);var _0xbeb170={'where':_0x2f851f['where']};return db[_0x9a09('0x2c')][_0x9a09('0x1e')](_0xbeb170)[_0x9a09('0x24')](function(_0x170cdb){_0x4eb106[_0x9a09('0x1e')]=_0x170cdb;if(_0x2f80a7[_0x9a09('0x31')]['includeAll']){_0x2f851f['include']=[{'all':!![]}];}return db[_0x9a09('0x2c')][_0x9a09('0x3f')](_0x2f851f);})[_0x9a09('0x24')](function(_0x31c308){_0x4eb106[_0x9a09('0x40')]=_0x31c308;return _0x4eb106;})[_0x9a09('0x24')](respondWithFilteredResult(_0x210b15,_0x2f851f))['catch'](handleError(_0x210b15,null));};exports['show']=function(_0x12dc61,_0x56cdc2){var _0xb0a02d={'raw':!![],'where':{'id':_0x12dc61['params']['id']}},_0x5527d3={};_0x5527d3[_0x9a09('0x30')]=_[_0x9a09('0x32')](db['Interval']['rawAttributes']);_0x5527d3[_0x9a09('0x31')]=_[_0x9a09('0x32')](_0x12dc61[_0x9a09('0x31')]);_0x5527d3['filters']=_[_0x9a09('0x34')](_0x5527d3[_0x9a09('0x30')],_0x5527d3[_0x9a09('0x31')]);_0xb0a02d[_0x9a09('0x35')]=_[_0x9a09('0x34')](_0x5527d3['model'],qs['fields'](_0x12dc61[_0x9a09('0x31')][_0x9a09('0x41')]));_0xb0a02d[_0x9a09('0x35')]=_0xb0a02d[_0x9a09('0x35')]['length']?_0xb0a02d[_0x9a09('0x35')]:_0x5527d3[_0x9a09('0x30')];if(_0x12dc61['query']['includeAll']){_0xb0a02d[_0x9a09('0x42')]=[{'all':!![]}];}_0xb0a02d=_[_0x9a09('0x3e')]({},_0xb0a02d,_0x12dc61[_0x9a09('0x43')]);return db[_0x9a09('0x2c')]['find'](_0xb0a02d)['then'](handleEntityNotFound(_0x56cdc2,null))[_0x9a09('0x24')](respondWithResult(_0x56cdc2,null))['catch'](handleError(_0x56cdc2,null));};exports[_0x9a09('0x44')]=function(_0x3198d6,_0x1547c7){return db[_0x9a09('0x2c')][_0x9a09('0x44')](_0x3198d6[_0x9a09('0x45')],{})[_0x9a09('0x24')](function(_0x36346e){var _0x5158fc=_0x3198d6[_0x9a09('0x46')][_0x9a09('0x25')]({'plain':!![]});if(!_0x5158fc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5158fc[_0x9a09('0x47')]==='user'){var _0x39f1de=_0x36346e[_0x9a09('0x25')]({'plain':!![]});var _0x13bafe=_0x9a09('0x26');return db[_0x9a09('0x48')][_0x9a09('0x49')]({'where':{'name':_0x13bafe,'userProfileId':_0x5158fc['userProfileId']},'raw':!![]})[_0x9a09('0x24')](function(_0x449dca){if(_0x449dca&&_0x449dca[_0x9a09('0x4a')]===0x0){return db['UserProfileResource'][_0x9a09('0x44')]({'name':_0x39f1de[_0x9a09('0x29')],'resourceId':_0x39f1de['id'],'type':_0x449dca[_0x9a09('0x29')],'sectionId':_0x449dca['id']},{})[_0x9a09('0x24')](function(){return _0x36346e;});}else{return _0x36346e;}})[_0x9a09('0x4b')](function(_0x5c141a){logger[_0x9a09('0x4c')](_0x9a09('0x4d'),_0x5c141a);throw _0x5c141a;});}return _0x36346e;})[_0x9a09('0x24')](respondWithResult(_0x1547c7,0xc9))[_0x9a09('0x4b')](handleError(_0x1547c7,null));};exports[_0x9a09('0x23')]=function(_0x4a80e2,_0x1c60d4){if(_0x4a80e2[_0x9a09('0x45')]['id']){delete _0x4a80e2[_0x9a09('0x45')]['id'];}return db['Interval'][_0x9a09('0x49')]({'where':{'id':_0x4a80e2[_0x9a09('0x4e')]['id']}})[_0x9a09('0x24')](handleEntityNotFound(_0x1c60d4,null))['then'](saveUpdates(_0x4a80e2[_0x9a09('0x45')],null))[_0x9a09('0x24')](respondWithResult(_0x1c60d4,null))[_0x9a09('0x4b')](handleError(_0x1c60d4,null));};exports['destroy']=function(_0x499cd8,_0x46763c){return db['Interval'][_0x9a09('0x49')]({'where':{'id':_0x499cd8[_0x9a09('0x4e')]['id']}})[_0x9a09('0x24')](handleEntityNotFound(_0x46763c,null))[_0x9a09('0x24')](removeEntity(_0x46763c,null))[_0x9a09('0x4b')](handleError(_0x46763c,null));};exports[_0x9a09('0x4f')]=function(_0x46edb2,_0xdb18e7,_0x76f8f5){if(_0x46edb2[_0x9a09('0x45')]['id']){delete _0x46edb2['body']['id'];}return db[_0x9a09('0x2c')]['find']({'where':{'id':_0x46edb2[_0x9a09('0x4e')]['id']}})[_0x9a09('0x24')](handleEntityNotFound(_0xdb18e7,null))[_0x9a09('0x24')](function(_0x4552d4){if(_0x4552d4){_0x46edb2[_0x9a09('0x45')]['IntervalId']=_0x4552d4['id'];return db[_0x9a09('0x2c')][_0x9a09('0x44')](_0x46edb2['body']);}})['then'](respondWithResult(_0xdb18e7,null))[_0x9a09('0x4b')](handleError(_0xdb18e7,null));};exports[_0x9a09('0x50')]=function(_0xfc3ffa,_0x21216a,_0x1c9c42){var _0x13cdab={};var _0x4a42a6={};var _0x5371ac;var _0x2d1d37;return db[_0x9a09('0x2c')][_0x9a09('0x51')]({'where':{'id':_0xfc3ffa['params']['id']}})[_0x9a09('0x24')](handleEntityNotFound(_0x21216a,null))[_0x9a09('0x24')](function(_0x2ddd6f){if(_0x2ddd6f){_0x5371ac=_0x2ddd6f;_0x4a42a6['model']=_['keys'](db[_0x9a09('0x2c')]['rawAttributes']);_0x4a42a6[_0x9a09('0x31')]=_['keys'](_0xfc3ffa['query']);_0x4a42a6[_0x9a09('0x33')]=_[_0x9a09('0x34')](_0x4a42a6[_0x9a09('0x30')],_0x4a42a6[_0x9a09('0x31')]);_0x13cdab[_0x9a09('0x35')]=_[_0x9a09('0x34')](_0x4a42a6['model'],qs['fields'](_0xfc3ffa[_0x9a09('0x31')][_0x9a09('0x41')]));_0x13cdab[_0x9a09('0x35')]=_0x13cdab['attributes']['length']?_0x13cdab[_0x9a09('0x35')]:_0x4a42a6[_0x9a09('0x30')];_0x13cdab[_0x9a09('0x39')]=qs['sort'](_0xfc3ffa[_0x9a09('0x31')]['sort']);_0x13cdab[_0x9a09('0x3b')]=qs[_0x9a09('0x33')](_[_0x9a09('0x3c')](_0xfc3ffa[_0x9a09('0x31')],_0x4a42a6[_0x9a09('0x33')]));if(_0xfc3ffa[_0x9a09('0x31')][_0x9a09('0x3d')]){_0x13cdab['where']=_[_0x9a09('0x3e')](_0x13cdab[_0x9a09('0x3b')],{'$or':_[_0x9a09('0x2b')](_0x13cdab[_0x9a09('0x35')],function(_0x424c71){var _0x4dcdb8={};_0x4dcdb8[_0x424c71]={'$like':'%'+_0xfc3ffa[_0x9a09('0x31')]['filter']+'%'};return _0x4dcdb8;})});}_0x13cdab=_[_0x9a09('0x3e')]({},_0x13cdab,_0xfc3ffa[_0x9a09('0x43')]);return _0x5371ac['getIntervals'](_0x13cdab);}})[_0x9a09('0x24')](function(_0x3f9b85){if(_0x3f9b85){_0x2d1d37=_0x3f9b85[_0x9a09('0x36')];if(!_0xfc3ffa[_0x9a09('0x31')][_0x9a09('0x37')](_0x9a09('0x38'))){_0x13cdab['limit']=qs[_0x9a09('0x1c')](_0xfc3ffa[_0x9a09('0x31')][_0x9a09('0x1c')]);_0x13cdab['offset']=qs[_0x9a09('0x1b')](_0xfc3ffa[_0x9a09('0x31')][_0x9a09('0x1b')]);}return _0x5371ac[_0x9a09('0x50')](_0x13cdab);}})['then'](function(_0x317d6c){if(_0x317d6c){return _0x317d6c?{'count':_0x2d1d37,'rows':_0x317d6c}:null;}})[_0x9a09('0x24')](respondWithResult(_0x21216a,null))[_0x9a09('0x4b')](handleError(_0x21216a,null));};exports[_0x9a09('0x52')]=function(_0x156cc2,_0x8af524,_0x21fd94){return db[_0x9a09('0x2c')]['findOne']({'where':{'id':_0x156cc2[_0x9a09('0x4e')]['id']}})['then'](handleEntityNotFound(_0x8af524,null))[_0x9a09('0x24')](function(_0x4ec85b){if(_0x4ec85b){return db[_0x9a09('0x53')]['transaction'](function(_0x10aeae){return db[_0x9a09('0x2c')][_0x9a09('0x54')]({'where':{'IntervalId':_0x156cc2['params']['id']},'transaction':_0x10aeae})[_0x9a09('0x24')](function(_0xb5b0fe){var _0x261027=_['map'](_0x156cc2['body'],function(_0x441b37){delete _0x441b37['id'];_0x441b37['IntervalId']=_0x156cc2[_0x9a09('0x4e')]['id'];return _0x441b37;});return db['Interval'][_0x9a09('0x55')](_0x261027,{'transaction':_0x10aeae});});})[_0x9a09('0x24')](function(){return db['Interval'][_0x9a09('0x3f')]({'where':{'IntervalId':_0x156cc2[_0x9a09('0x4e')]['id']}});});}})[_0x9a09('0x24')](respondWithResult(_0x8af524,null))['catch'](handleError(_0x8af524,null));};