Built motion from commit bab6f49e.|2.6.17
[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 _0xbd68=['sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','params','keys','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','IntervalId','findOne','order','addIntervals','sequelize','transaction','bulkCreate','eml-format','fast-json-patch','request-promise','mustache','util','path','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../components/extensions/rewrite','sendStatus','end','status','json','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','get','Intervals','UserProfileResource','destroy','error','stack','name','index','map','Interval','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbd68,0x78));var _0x8bd6=function(_0x2e35c3,_0xe9e349){_0x2e35c3=_0x2e35c3-0x0;var _0x2f93e2=_0xbd68[_0x2e35c3];return _0x2f93e2;};'use strict';var emlformat=require(_0x8bd6('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x8bd6('0x1'));var rp=require(_0x8bd6('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x8bd6('0x3'));var util=require(_0x8bd6('0x4'));var path=require(_0x8bd6('0x5'));var sox=require('sox');var csv=require(_0x8bd6('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8bd6('0x7'));var _=require(_0x8bd6('0x8'));var squel=require(_0x8bd6('0x9'));var crypto=require('crypto');var jsforce=require(_0x8bd6('0xa'));var deskjs=require(_0x8bd6('0xb'));var toCsv=require(_0x8bd6('0x6'));var querystring=require(_0x8bd6('0xc'));var Papa=require('papaparse');var Redis=require(_0x8bd6('0xd'));var authService=require(_0x8bd6('0xe'));var qs=require(_0x8bd6('0xf'));var as=require(_0x8bd6('0x10'));var hardwareService=require(_0x8bd6('0x11'));var logger=require('../../config/logger')(_0x8bd6('0x12'));var utils=require(_0x8bd6('0x13'));var config=require(_0x8bd6('0x14'));var licenseUtil=require(_0x8bd6('0x15'));var db=require('../../mysqldb')['db'];var extensions=require(_0x8bd6('0x16'));function respondWithStatusCode(_0x534a1a,_0x2ad967){_0x2ad967=_0x2ad967||0xcc;return function(_0x5757a2){if(_0x5757a2){return _0x534a1a[_0x8bd6('0x17')](_0x2ad967);}return _0x534a1a['status'](_0x2ad967)[_0x8bd6('0x18')]();};}function respondWithResult(_0x50ae1a,_0x1d19de){_0x1d19de=_0x1d19de||0xc8;return function(_0x7b6ff6){if(_0x7b6ff6){return _0x50ae1a[_0x8bd6('0x19')](_0x1d19de)[_0x8bd6('0x1a')](_0x7b6ff6);}};}function respondWithFilteredResult(_0x15499e,_0x1efae3){return function(_0x168ecd){if(_0x168ecd){var _0x56a8be=typeof _0x1efae3['offset']===_0x8bd6('0x1b')&&typeof _0x1efae3['limit']==='undefined';var _0x147f18=_0x168ecd[_0x8bd6('0x1c')];var _0x258189=_0x56a8be?0x0:_0x1efae3['offset'];var _0x17a31a=_0x56a8be?_0x168ecd[_0x8bd6('0x1c')]:_0x1efae3['offset']+_0x1efae3[_0x8bd6('0x1d')];var _0x4ab8e0;if(_0x17a31a>=_0x147f18){_0x17a31a=_0x147f18;_0x4ab8e0=0xc8;}else{_0x4ab8e0=0xce;}_0x15499e[_0x8bd6('0x19')](_0x4ab8e0);return _0x15499e[_0x8bd6('0x1e')](_0x8bd6('0x1f'),_0x258189+'-'+_0x17a31a+'/'+_0x147f18)['json'](_0x168ecd);}return null;};}function patchUpdates(_0x3806d0){return function(_0x4aa3ee){try{jsonpatch[_0x8bd6('0x20')](_0x4aa3ee,_0x3806d0,!![]);}catch(_0x4ac5fa){return BPromise[_0x8bd6('0x21')](_0x4ac5fa);}return _0x4aa3ee[_0x8bd6('0x22')]();};}function saveUpdates(_0x4e3f44,_0x56f449){return function(_0x23c200){if(_0x23c200){return _0x23c200[_0x8bd6('0x23')](_0x4e3f44)[_0x8bd6('0x24')](function(_0x3cec75){return _0x3cec75;});}return null;};}function removeEntity(_0x4e47eb,_0x236cb8){return function(_0x48bfd5){if(_0x48bfd5){return _0x48bfd5['destroy']()['then'](function(){var _0x4d776a=_0x48bfd5[_0x8bd6('0x25')]({'plain':!![]});var _0x4c15c3=_0x8bd6('0x26');return db[_0x8bd6('0x27')][_0x8bd6('0x28')]({'where':{'type':_0x4c15c3,'resourceId':_0x4d776a['id']}})[_0x8bd6('0x24')](function(){return _0x48bfd5;});})[_0x8bd6('0x24')](function(){_0x4e47eb[_0x8bd6('0x19')](0xcc)[_0x8bd6('0x18')]();});}};}function handleEntityNotFound(_0x1ffc25,_0xb79621){return function(_0x3f8e28){if(!_0x3f8e28){_0x1ffc25[_0x8bd6('0x17')](0x194);}return _0x3f8e28;};}function handleError(_0x493b30,_0x5675eb){_0x5675eb=_0x5675eb||0x1f4;return function(_0x51b53a){logger[_0x8bd6('0x29')](_0x51b53a[_0x8bd6('0x2a')]);if(_0x51b53a[_0x8bd6('0x2b')]){delete _0x51b53a[_0x8bd6('0x2b')];}_0x493b30['status'](_0x5675eb)['send'](_0x51b53a);};}exports[_0x8bd6('0x2c')]=function(_0x2216ec,_0x532eaa){var _0x1b6521={},_0x35538d={},_0x4c07fe={'count':0x0,'rows':[]};var _0x28324c=_[_0x8bd6('0x2d')](db[_0x8bd6('0x2e')][_0x8bd6('0x2f')],function(_0x143e9f){return{'name':_0x143e9f['fieldName'],'type':_0x143e9f[_0x8bd6('0x30')][_0x8bd6('0x31')]};});_0x35538d[_0x8bd6('0x32')]=_['map'](_0x28324c,_0x8bd6('0x2b'));_0x35538d[_0x8bd6('0x33')]=_['keys'](_0x2216ec['query']);_0x35538d[_0x8bd6('0x34')]=_[_0x8bd6('0x35')](_0x35538d[_0x8bd6('0x32')],_0x35538d[_0x8bd6('0x33')]);_0x1b6521[_0x8bd6('0x36')]=_['intersection'](_0x35538d['model'],qs['fields'](_0x2216ec[_0x8bd6('0x33')][_0x8bd6('0x37')]));_0x1b6521[_0x8bd6('0x36')]=_0x1b6521[_0x8bd6('0x36')][_0x8bd6('0x38')]?_0x1b6521['attributes']:_0x35538d[_0x8bd6('0x32')];if(!_0x2216ec[_0x8bd6('0x33')][_0x8bd6('0x39')](_0x8bd6('0x3a'))){_0x1b6521[_0x8bd6('0x1d')]=qs['limit'](_0x2216ec[_0x8bd6('0x33')][_0x8bd6('0x1d')]);_0x1b6521['offset']=qs[_0x8bd6('0x3b')](_0x2216ec[_0x8bd6('0x33')]['offset']);}_0x1b6521['order']=qs[_0x8bd6('0x3c')](_0x2216ec[_0x8bd6('0x33')][_0x8bd6('0x3c')]);_0x1b6521[_0x8bd6('0x3d')]=qs[_0x8bd6('0x34')](_[_0x8bd6('0x3e')](_0x2216ec[_0x8bd6('0x33')],_0x35538d[_0x8bd6('0x34')]),_0x28324c);if(_0x2216ec[_0x8bd6('0x33')][_0x8bd6('0x3f')]){_0x1b6521[_0x8bd6('0x3d')]=_[_0x8bd6('0x40')](_0x1b6521['where'],{'$or':_['map'](_0x28324c,function(_0x358ab0){if(_0x358ab0[_0x8bd6('0x30')]!==_0x8bd6('0x41')){var _0x1d3749={};_0x1d3749[_0x358ab0[_0x8bd6('0x2b')]]={'$like':'%'+_0x2216ec[_0x8bd6('0x33')][_0x8bd6('0x3f')]+'%'};return _0x1d3749;}})});}_0x1b6521=_[_0x8bd6('0x40')]({},_0x1b6521,_0x2216ec[_0x8bd6('0x42')]);var _0x445adb={'where':_0x1b6521[_0x8bd6('0x3d')]};return db[_0x8bd6('0x2e')]['count'](_0x445adb)[_0x8bd6('0x24')](function(_0x50a825){_0x4c07fe[_0x8bd6('0x1c')]=_0x50a825;if(_0x2216ec[_0x8bd6('0x33')]['includeAll']){_0x1b6521[_0x8bd6('0x43')]=[{'all':!![]}];}return db['Interval'][_0x8bd6('0x44')](_0x1b6521);})[_0x8bd6('0x24')](function(_0x304b88){_0x4c07fe[_0x8bd6('0x45')]=_0x304b88;return _0x4c07fe;})[_0x8bd6('0x24')](respondWithFilteredResult(_0x532eaa,_0x1b6521))[_0x8bd6('0x46')](handleError(_0x532eaa,null));};exports['show']=function(_0x2a5eb4,_0x3685aa){var _0x241367={'raw':!![],'where':{'id':_0x2a5eb4[_0x8bd6('0x47')]['id']}},_0x2608e2={};_0x2608e2['model']=_[_0x8bd6('0x48')](db[_0x8bd6('0x2e')][_0x8bd6('0x2f')]);_0x2608e2[_0x8bd6('0x33')]=_['keys'](_0x2a5eb4['query']);_0x2608e2[_0x8bd6('0x34')]=_['intersection'](_0x2608e2['model'],_0x2608e2[_0x8bd6('0x33')]);_0x241367[_0x8bd6('0x36')]=_[_0x8bd6('0x35')](_0x2608e2[_0x8bd6('0x32')],qs['fields'](_0x2a5eb4[_0x8bd6('0x33')][_0x8bd6('0x37')]));_0x241367['attributes']=_0x241367['attributes'][_0x8bd6('0x38')]?_0x241367[_0x8bd6('0x36')]:_0x2608e2[_0x8bd6('0x32')];if(_0x2a5eb4[_0x8bd6('0x33')][_0x8bd6('0x49')]){_0x241367[_0x8bd6('0x43')]=[{'all':!![]}];}_0x241367=_['merge']({},_0x241367,_0x2a5eb4[_0x8bd6('0x42')]);return db['Interval'][_0x8bd6('0x4a')](_0x241367)[_0x8bd6('0x24')](handleEntityNotFound(_0x3685aa,null))[_0x8bd6('0x24')](respondWithResult(_0x3685aa,null))['catch'](handleError(_0x3685aa,null));};exports[_0x8bd6('0x4b')]=function(_0x503d7d,_0x11525a){return db[_0x8bd6('0x2e')][_0x8bd6('0x4b')](_0x503d7d[_0x8bd6('0x4c')],{})['then'](function(_0x5f3994){var _0x153837=_0x503d7d[_0x8bd6('0x4d')]['get']({'plain':!![]});if(!_0x153837)throw new Error(_0x8bd6('0x4e'));if(_0x153837[_0x8bd6('0x4f')]===_0x8bd6('0x4d')){var _0x17702a=_0x5f3994[_0x8bd6('0x25')]({'plain':!![]});var _0x283184=_0x8bd6('0x26');return db['UserProfileSection'][_0x8bd6('0x4a')]({'where':{'name':_0x283184,'userProfileId':_0x153837[_0x8bd6('0x50')]},'raw':!![]})['then'](function(_0x249544){if(_0x249544&&_0x249544[_0x8bd6('0x51')]===0x0){return db[_0x8bd6('0x27')]['create']({'name':_0x17702a[_0x8bd6('0x2b')],'resourceId':_0x17702a['id'],'type':_0x249544[_0x8bd6('0x2b')],'sectionId':_0x249544['id']},{})['then'](function(){return _0x5f3994;});}else{return _0x5f3994;}})[_0x8bd6('0x46')](function(_0x1f2922){logger[_0x8bd6('0x29')](_0x8bd6('0x52'),_0x1f2922);throw _0x1f2922;});}return _0x5f3994;})[_0x8bd6('0x24')](respondWithResult(_0x11525a,0xc9))['catch'](handleError(_0x11525a,null));};exports['update']=function(_0x35ebcf,_0x153526){if(_0x35ebcf[_0x8bd6('0x4c')]['id']){delete _0x35ebcf[_0x8bd6('0x4c')]['id'];}return db[_0x8bd6('0x2e')]['find']({'where':{'id':_0x35ebcf[_0x8bd6('0x47')]['id']}})[_0x8bd6('0x24')](handleEntityNotFound(_0x153526,null))[_0x8bd6('0x24')](saveUpdates(_0x35ebcf[_0x8bd6('0x4c')],null))[_0x8bd6('0x24')](respondWithResult(_0x153526,null))[_0x8bd6('0x46')](handleError(_0x153526,null));};exports[_0x8bd6('0x28')]=function(_0x577049,_0x1f081e){return db[_0x8bd6('0x2e')][_0x8bd6('0x4a')]({'where':{'id':_0x577049[_0x8bd6('0x47')]['id']}})[_0x8bd6('0x24')](handleEntityNotFound(_0x1f081e,null))[_0x8bd6('0x24')](removeEntity(_0x1f081e,null))[_0x8bd6('0x46')](handleError(_0x1f081e,null));};exports['addInterval']=function(_0x426b3e,_0x705f37,_0x13b453){if(_0x426b3e[_0x8bd6('0x4c')]['id']){delete _0x426b3e[_0x8bd6('0x4c')]['id'];}return db[_0x8bd6('0x2e')][_0x8bd6('0x4a')]({'where':{'id':_0x426b3e[_0x8bd6('0x47')]['id']}})['then'](handleEntityNotFound(_0x705f37,null))[_0x8bd6('0x24')](function(_0x5310f6){if(_0x5310f6){_0x426b3e[_0x8bd6('0x4c')][_0x8bd6('0x53')]=_0x5310f6['id'];return db['Interval'][_0x8bd6('0x4b')](_0x426b3e[_0x8bd6('0x4c')]);}})[_0x8bd6('0x24')](respondWithResult(_0x705f37,null))[_0x8bd6('0x46')](handleError(_0x705f37,null));};exports['getIntervals']=function(_0x41f4f2,_0x4ffea2,_0x57a17a){var _0x425402={};var _0x1923d1={};var _0x330328;var _0x2a7a15;return db[_0x8bd6('0x2e')][_0x8bd6('0x54')]({'where':{'id':_0x41f4f2['params']['id']}})[_0x8bd6('0x24')](handleEntityNotFound(_0x4ffea2,null))['then'](function(_0xf3a363){if(_0xf3a363){_0x330328=_0xf3a363;_0x1923d1[_0x8bd6('0x32')]=_[_0x8bd6('0x48')](db[_0x8bd6('0x2e')][_0x8bd6('0x2f')]);_0x1923d1[_0x8bd6('0x33')]=_[_0x8bd6('0x48')](_0x41f4f2[_0x8bd6('0x33')]);_0x1923d1[_0x8bd6('0x34')]=_[_0x8bd6('0x35')](_0x1923d1[_0x8bd6('0x32')],_0x1923d1[_0x8bd6('0x33')]);_0x425402[_0x8bd6('0x36')]=_[_0x8bd6('0x35')](_0x1923d1[_0x8bd6('0x32')],qs[_0x8bd6('0x37')](_0x41f4f2['query']['fields']));_0x425402[_0x8bd6('0x36')]=_0x425402[_0x8bd6('0x36')][_0x8bd6('0x38')]?_0x425402['attributes']:_0x1923d1['model'];_0x425402[_0x8bd6('0x55')]=qs[_0x8bd6('0x3c')](_0x41f4f2[_0x8bd6('0x33')][_0x8bd6('0x3c')]);_0x425402[_0x8bd6('0x3d')]=qs[_0x8bd6('0x34')](_['pick'](_0x41f4f2[_0x8bd6('0x33')],_0x1923d1['filters']));if(_0x41f4f2[_0x8bd6('0x33')][_0x8bd6('0x3f')]){_0x425402[_0x8bd6('0x3d')]=_['merge'](_0x425402['where'],{'$or':_[_0x8bd6('0x2d')](_0x425402[_0x8bd6('0x36')],function(_0x4feb1d){var _0x3d3e87={};_0x3d3e87[_0x4feb1d]={'$like':'%'+_0x41f4f2[_0x8bd6('0x33')][_0x8bd6('0x3f')]+'%'};return _0x3d3e87;})});}_0x425402=_[_0x8bd6('0x40')]({},_0x425402,_0x41f4f2[_0x8bd6('0x42')]);return _0x330328['getIntervals'](_0x425402);}})['then'](function(_0x47ff7f){if(_0x47ff7f){_0x2a7a15=_0x47ff7f[_0x8bd6('0x38')];if(!_0x41f4f2['query'][_0x8bd6('0x39')](_0x8bd6('0x3a'))){_0x425402[_0x8bd6('0x1d')]=qs[_0x8bd6('0x1d')](_0x41f4f2['query']['limit']);_0x425402[_0x8bd6('0x3b')]=qs[_0x8bd6('0x3b')](_0x41f4f2[_0x8bd6('0x33')][_0x8bd6('0x3b')]);}return _0x330328['getIntervals'](_0x425402);}})[_0x8bd6('0x24')](function(_0x53e524){if(_0x53e524){return _0x53e524?{'count':_0x2a7a15,'rows':_0x53e524}:null;}})['then'](respondWithResult(_0x4ffea2,null))['catch'](handleError(_0x4ffea2,null));};exports[_0x8bd6('0x56')]=function(_0x1a288b,_0x27d5cc,_0x3d7cab){return db[_0x8bd6('0x2e')][_0x8bd6('0x54')]({'where':{'id':_0x1a288b[_0x8bd6('0x47')]['id']}})[_0x8bd6('0x24')](handleEntityNotFound(_0x27d5cc,null))[_0x8bd6('0x24')](function(_0x588c13){if(_0x588c13){return db[_0x8bd6('0x57')][_0x8bd6('0x58')](function(_0x27c4b8){return db[_0x8bd6('0x2e')][_0x8bd6('0x28')]({'where':{'IntervalId':_0x1a288b[_0x8bd6('0x47')]['id']},'transaction':_0x27c4b8})[_0x8bd6('0x24')](function(_0x5a3c8e){var _0x50637d=_[_0x8bd6('0x2d')](_0x1a288b[_0x8bd6('0x4c')],function(_0x2bf860){delete _0x2bf860['id'];_0x2bf860['IntervalId']=_0x1a288b[_0x8bd6('0x47')]['id'];return _0x2bf860;});return db[_0x8bd6('0x2e')][_0x8bd6('0x59')](_0x50637d,{'transaction':_0x27c4b8});});})[_0x8bd6('0x24')](function(){return db['Interval'][_0x8bd6('0x44')]({'where':{'IntervalId':_0x1a288b[_0x8bd6('0x47')]['id']}});});}})[_0x8bd6('0x24')](respondWithResult(_0x27d5cc,null))['catch'](handleError(_0x27d5cc,null));};