2a480a9986f9b837414df60f3c93d66abed4c5a5
[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 _0x2005=['offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','Intervals','UserProfileResource','error','stack','name','send','map','Interval','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','params','IntervalId','getIntervals','findOne','order','addIntervals','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json'];(function(_0x3f38f5,_0x3d2163){var _0x3b4962=function(_0x5e7030){while(--_0x5e7030){_0x3f38f5['push'](_0x3f38f5['shift']());}};_0x3b4962(++_0x3d2163);}(_0x2005,0x9b));var _0x5200=function(_0x3c994d,_0x1d0ff0){_0x3c994d=_0x3c994d-0x0;var _0x1bb8c7=_0x2005[_0x3c994d];return _0x1bb8c7;};'use strict';var emlformat=require(_0x5200('0x0'));var rimraf=require(_0x5200('0x1'));var zipdir=require(_0x5200('0x2'));var jsonpatch=require(_0x5200('0x3'));var rp=require('request-promise');var moment=require(_0x5200('0x4'));var BPromise=require(_0x5200('0x5'));var Mustache=require(_0x5200('0x6'));var util=require(_0x5200('0x7'));var path=require('path');var sox=require(_0x5200('0x8'));var csv=require(_0x5200('0x9'));var ejs=require(_0x5200('0xa'));var fs=require('fs');var fs_extra=require(_0x5200('0xb'));var _=require('lodash');var squel=require(_0x5200('0xc'));var crypto=require('crypto');var jsforce=require(_0x5200('0xd'));var deskjs=require(_0x5200('0xe'));var toCsv=require(_0x5200('0x9'));var querystring=require('querystring');var Papa=require(_0x5200('0xf'));var Redis=require('ioredis');var authService=require(_0x5200('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x5200('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5200('0x12'))(_0x5200('0x13'));var utils=require(_0x5200('0x14'));var config=require(_0x5200('0x15'));var licenseUtil=require(_0x5200('0x16'));var db=require(_0x5200('0x17'))['db'];var extensions=require(_0x5200('0x18'));function respondWithStatusCode(_0x5df41f,_0x5b2f76){_0x5b2f76=_0x5b2f76||0xcc;return function(_0x13bad5){if(_0x13bad5){return _0x5df41f[_0x5200('0x19')](_0x5b2f76);}return _0x5df41f[_0x5200('0x1a')](_0x5b2f76)[_0x5200('0x1b')]();};}function respondWithResult(_0x44f677,_0x52a874){_0x52a874=_0x52a874||0xc8;return function(_0x2f0cd3){if(_0x2f0cd3){return _0x44f677[_0x5200('0x1a')](_0x52a874)[_0x5200('0x1c')](_0x2f0cd3);}};}function respondWithFilteredResult(_0x3158c0,_0x340fef){return function(_0x33ff71){if(_0x33ff71){var _0x3cbbad=typeof _0x340fef[_0x5200('0x1d')]===_0x5200('0x1e')&&typeof _0x340fef[_0x5200('0x1f')]==='undefined';var _0x4848c3=_0x33ff71[_0x5200('0x20')];var _0x5d03cb=_0x3cbbad?0x0:_0x340fef[_0x5200('0x1d')];var _0x144607=_0x3cbbad?_0x33ff71[_0x5200('0x20')]:_0x340fef[_0x5200('0x1d')]+_0x340fef[_0x5200('0x1f')];var _0x42b100;if(_0x144607>=_0x4848c3){_0x144607=_0x4848c3;_0x42b100=0xc8;}else{_0x42b100=0xce;}_0x3158c0['status'](_0x42b100);return _0x3158c0[_0x5200('0x21')](_0x5200('0x22'),_0x5d03cb+'-'+_0x144607+'/'+_0x4848c3)[_0x5200('0x1c')](_0x33ff71);}return null;};}function patchUpdates(_0x510f12){return function(_0x13adc4){try{jsonpatch[_0x5200('0x23')](_0x13adc4,_0x510f12,!![]);}catch(_0x21a105){return BPromise[_0x5200('0x24')](_0x21a105);}return _0x13adc4['save']();};}function saveUpdates(_0x213ea9,_0x297e96){return function(_0x1b3572){if(_0x1b3572){return _0x1b3572[_0x5200('0x25')](_0x213ea9)[_0x5200('0x26')](function(_0x352b87){return _0x352b87;});}return null;};}function removeEntity(_0x23fae8,_0x2d856d){return function(_0x728074){if(_0x728074){return _0x728074[_0x5200('0x27')]()['then'](function(){var _0x4208dd=_0x728074['get']({'plain':!![]});var _0x1d0128=_0x5200('0x28');return db[_0x5200('0x29')]['destroy']({'where':{'type':_0x1d0128,'resourceId':_0x4208dd['id']}})['then'](function(){return _0x728074;});})[_0x5200('0x26')](function(){_0x23fae8[_0x5200('0x1a')](0xcc)[_0x5200('0x1b')]();});}};}function handleEntityNotFound(_0x3500ad,_0x22e74d){return function(_0x35fa1f){if(!_0x35fa1f){_0x3500ad[_0x5200('0x19')](0x194);}return _0x35fa1f;};}function handleError(_0x15f820,_0x330702){_0x330702=_0x330702||0x1f4;return function(_0x1734ce){logger[_0x5200('0x2a')](_0x1734ce[_0x5200('0x2b')]);if(_0x1734ce[_0x5200('0x2c')]){delete _0x1734ce[_0x5200('0x2c')];}_0x15f820[_0x5200('0x1a')](_0x330702)[_0x5200('0x2d')](_0x1734ce);};}exports['index']=function(_0x5cb1f2,_0x58230c){var _0x22bbf6={},_0x158a34={},_0x521be1={'count':0x0,'rows':[]};var _0x371ffb=_[_0x5200('0x2e')](db[_0x5200('0x2f')][_0x5200('0x30')],function(_0x2d8e07){return{'name':_0x2d8e07['fieldName'],'type':_0x2d8e07[_0x5200('0x31')][_0x5200('0x32')]};});_0x158a34[_0x5200('0x33')]=_[_0x5200('0x2e')](_0x371ffb,'name');_0x158a34[_0x5200('0x34')]=_[_0x5200('0x35')](_0x5cb1f2[_0x5200('0x34')]);_0x158a34[_0x5200('0x36')]=_['intersection'](_0x158a34[_0x5200('0x33')],_0x158a34[_0x5200('0x34')]);_0x22bbf6['attributes']=_[_0x5200('0x37')](_0x158a34[_0x5200('0x33')],qs[_0x5200('0x38')](_0x5cb1f2[_0x5200('0x34')]['fields']));_0x22bbf6[_0x5200('0x39')]=_0x22bbf6[_0x5200('0x39')][_0x5200('0x3a')]?_0x22bbf6['attributes']:_0x158a34[_0x5200('0x33')];if(!_0x5cb1f2['query'][_0x5200('0x3b')]('nolimit')){_0x22bbf6['limit']=qs[_0x5200('0x1f')](_0x5cb1f2[_0x5200('0x34')]['limit']);_0x22bbf6[_0x5200('0x1d')]=qs[_0x5200('0x1d')](_0x5cb1f2[_0x5200('0x34')][_0x5200('0x1d')]);}_0x22bbf6['order']=qs[_0x5200('0x3c')](_0x5cb1f2['query'][_0x5200('0x3c')]);_0x22bbf6['where']=qs[_0x5200('0x36')](_[_0x5200('0x3d')](_0x5cb1f2[_0x5200('0x34')],_0x158a34[_0x5200('0x36')]),_0x371ffb);if(_0x5cb1f2[_0x5200('0x34')][_0x5200('0x3e')]){_0x22bbf6[_0x5200('0x3f')]=_[_0x5200('0x40')](_0x22bbf6['where'],{'$or':_['map'](_0x371ffb,function(_0x2fb090){if(_0x2fb090[_0x5200('0x31')]!==_0x5200('0x41')){var _0x5124bd={};_0x5124bd[_0x2fb090['name']]={'$like':'%'+_0x5cb1f2[_0x5200('0x34')][_0x5200('0x3e')]+'%'};return _0x5124bd;}})});}_0x22bbf6=_[_0x5200('0x40')]({},_0x22bbf6,_0x5cb1f2[_0x5200('0x42')]);var _0xa7515d={'where':_0x22bbf6[_0x5200('0x3f')]};return db['Interval'][_0x5200('0x20')](_0xa7515d)['then'](function(_0x372da7){_0x521be1[_0x5200('0x20')]=_0x372da7;if(_0x5cb1f2[_0x5200('0x34')][_0x5200('0x43')]){_0x22bbf6[_0x5200('0x44')]=[{'all':!![]}];}return db[_0x5200('0x2f')][_0x5200('0x45')](_0x22bbf6);})[_0x5200('0x26')](function(_0x3cae1b){_0x521be1[_0x5200('0x46')]=_0x3cae1b;return _0x521be1;})['then'](respondWithFilteredResult(_0x58230c,_0x22bbf6))[_0x5200('0x47')](handleError(_0x58230c,null));};exports[_0x5200('0x48')]=function(_0x3db866,_0xb847d6){var _0x53cad4={'raw':!![],'where':{'id':_0x3db866['params']['id']}},_0x56521b={};_0x56521b['model']=_[_0x5200('0x35')](db[_0x5200('0x2f')][_0x5200('0x30')]);_0x56521b[_0x5200('0x34')]=_[_0x5200('0x35')](_0x3db866[_0x5200('0x34')]);_0x56521b['filters']=_[_0x5200('0x37')](_0x56521b[_0x5200('0x33')],_0x56521b['query']);_0x53cad4[_0x5200('0x39')]=_[_0x5200('0x37')](_0x56521b[_0x5200('0x33')],qs['fields'](_0x3db866[_0x5200('0x34')]['fields']));_0x53cad4[_0x5200('0x39')]=_0x53cad4[_0x5200('0x39')][_0x5200('0x3a')]?_0x53cad4[_0x5200('0x39')]:_0x56521b[_0x5200('0x33')];if(_0x3db866[_0x5200('0x34')][_0x5200('0x43')]){_0x53cad4[_0x5200('0x44')]=[{'all':!![]}];}_0x53cad4=_[_0x5200('0x40')]({},_0x53cad4,_0x3db866['options']);return db['Interval'][_0x5200('0x49')](_0x53cad4)['then'](handleEntityNotFound(_0xb847d6,null))['then'](respondWithResult(_0xb847d6,null))[_0x5200('0x47')](handleError(_0xb847d6,null));};exports['create']=function(_0x10e645,_0x27d490){return db[_0x5200('0x2f')][_0x5200('0x4a')](_0x10e645[_0x5200('0x4b')],{})[_0x5200('0x26')](function(_0x20ebd6){var _0x11d5bb=_0x10e645[_0x5200('0x4c')][_0x5200('0x4d')]({'plain':!![]});if(!_0x11d5bb)throw new Error(_0x5200('0x4e'));if(_0x11d5bb[_0x5200('0x4f')]===_0x5200('0x4c')){var _0x2ac7fb=_0x20ebd6['get']({'plain':!![]});var _0x52d0fb=_0x5200('0x28');return db[_0x5200('0x50')][_0x5200('0x49')]({'where':{'name':_0x52d0fb,'userProfileId':_0x11d5bb[_0x5200('0x51')]},'raw':!![]})[_0x5200('0x26')](function(_0x1a21d1){if(_0x1a21d1&&_0x1a21d1[_0x5200('0x52')]===0x0){return db[_0x5200('0x29')]['create']({'name':_0x2ac7fb[_0x5200('0x2c')],'resourceId':_0x2ac7fb['id'],'type':_0x1a21d1[_0x5200('0x2c')],'sectionId':_0x1a21d1['id']},{})[_0x5200('0x26')](function(){return _0x20ebd6;});}else{return _0x20ebd6;}})['catch'](function(_0xdad1c5){logger[_0x5200('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xdad1c5);throw _0xdad1c5;});}return _0x20ebd6;})[_0x5200('0x26')](respondWithResult(_0x27d490,0xc9))['catch'](handleError(_0x27d490,null));};exports[_0x5200('0x25')]=function(_0x553017,_0x163dc){if(_0x553017[_0x5200('0x4b')]['id']){delete _0x553017[_0x5200('0x4b')]['id'];}return db[_0x5200('0x2f')][_0x5200('0x49')]({'where':{'id':_0x553017[_0x5200('0x53')]['id']}})['then'](handleEntityNotFound(_0x163dc,null))['then'](saveUpdates(_0x553017['body'],null))[_0x5200('0x26')](respondWithResult(_0x163dc,null))[_0x5200('0x47')](handleError(_0x163dc,null));};exports['destroy']=function(_0x16a10d,_0x49c9fe){return db[_0x5200('0x2f')][_0x5200('0x49')]({'where':{'id':_0x16a10d['params']['id']}})[_0x5200('0x26')](handleEntityNotFound(_0x49c9fe,null))['then'](removeEntity(_0x49c9fe,null))[_0x5200('0x47')](handleError(_0x49c9fe,null));};exports['addInterval']=function(_0x5ed33f,_0x564ff8,_0x904646){if(_0x5ed33f['body']['id']){delete _0x5ed33f['body']['id'];}return db[_0x5200('0x2f')][_0x5200('0x49')]({'where':{'id':_0x5ed33f['params']['id']}})[_0x5200('0x26')](handleEntityNotFound(_0x564ff8,null))[_0x5200('0x26')](function(_0x2330d6){if(_0x2330d6){_0x5ed33f[_0x5200('0x4b')][_0x5200('0x54')]=_0x2330d6['id'];return db[_0x5200('0x2f')][_0x5200('0x4a')](_0x5ed33f['body']);}})[_0x5200('0x26')](respondWithResult(_0x564ff8,null))['catch'](handleError(_0x564ff8,null));};exports[_0x5200('0x55')]=function(_0x241774,_0x59f098,_0x355d85){var _0xc56405={};var _0xa63bcc={};var _0x76b08e;var _0x56fcb0;return db[_0x5200('0x2f')][_0x5200('0x56')]({'where':{'id':_0x241774[_0x5200('0x53')]['id']}})['then'](handleEntityNotFound(_0x59f098,null))[_0x5200('0x26')](function(_0x2cf359){if(_0x2cf359){_0x76b08e=_0x2cf359;_0xa63bcc[_0x5200('0x33')]=_[_0x5200('0x35')](db[_0x5200('0x2f')][_0x5200('0x30')]);_0xa63bcc[_0x5200('0x34')]=_[_0x5200('0x35')](_0x241774[_0x5200('0x34')]);_0xa63bcc[_0x5200('0x36')]=_[_0x5200('0x37')](_0xa63bcc[_0x5200('0x33')],_0xa63bcc[_0x5200('0x34')]);_0xc56405[_0x5200('0x39')]=_[_0x5200('0x37')](_0xa63bcc[_0x5200('0x33')],qs['fields'](_0x241774[_0x5200('0x34')][_0x5200('0x38')]));_0xc56405['attributes']=_0xc56405[_0x5200('0x39')][_0x5200('0x3a')]?_0xc56405[_0x5200('0x39')]:_0xa63bcc[_0x5200('0x33')];_0xc56405[_0x5200('0x57')]=qs['sort'](_0x241774[_0x5200('0x34')][_0x5200('0x3c')]);_0xc56405[_0x5200('0x3f')]=qs['filters'](_[_0x5200('0x3d')](_0x241774['query'],_0xa63bcc[_0x5200('0x36')]));if(_0x241774[_0x5200('0x34')][_0x5200('0x3e')]){_0xc56405[_0x5200('0x3f')]=_['merge'](_0xc56405[_0x5200('0x3f')],{'$or':_[_0x5200('0x2e')](_0xc56405[_0x5200('0x39')],function(_0xf0c0ff){var _0x149b51={};_0x149b51[_0xf0c0ff]={'$like':'%'+_0x241774['query'][_0x5200('0x3e')]+'%'};return _0x149b51;})});}_0xc56405=_[_0x5200('0x40')]({},_0xc56405,_0x241774['options']);return _0x76b08e[_0x5200('0x55')](_0xc56405);}})['then'](function(_0x5626a8){if(_0x5626a8){_0x56fcb0=_0x5626a8[_0x5200('0x3a')];if(!_0x241774[_0x5200('0x34')][_0x5200('0x3b')]('nolimit')){_0xc56405[_0x5200('0x1f')]=qs['limit'](_0x241774[_0x5200('0x34')][_0x5200('0x1f')]);_0xc56405['offset']=qs[_0x5200('0x1d')](_0x241774[_0x5200('0x34')][_0x5200('0x1d')]);}return _0x76b08e[_0x5200('0x55')](_0xc56405);}})[_0x5200('0x26')](function(_0x10f117){if(_0x10f117){return _0x10f117?{'count':_0x56fcb0,'rows':_0x10f117}:null;}})[_0x5200('0x26')](respondWithResult(_0x59f098,null))['catch'](handleError(_0x59f098,null));};exports[_0x5200('0x58')]=function(_0x32d3d1,_0x451d6f,_0x1039f1){return db[_0x5200('0x2f')][_0x5200('0x56')]({'where':{'id':_0x32d3d1[_0x5200('0x53')]['id']}})['then'](handleEntityNotFound(_0x451d6f,null))[_0x5200('0x26')](function(_0x5ed15c){if(_0x5ed15c){return db[_0x5200('0x59')][_0x5200('0x5a')](function(_0x39b9c6){return db[_0x5200('0x2f')][_0x5200('0x27')]({'where':{'IntervalId':_0x32d3d1[_0x5200('0x53')]['id']},'transaction':_0x39b9c6})[_0x5200('0x26')](function(_0x22ca08){var _0x195fe0=_['map'](_0x32d3d1['body'],function(_0x3ecc87){delete _0x3ecc87['id'];_0x3ecc87['IntervalId']=_0x32d3d1[_0x5200('0x53')]['id'];return _0x3ecc87;});return db[_0x5200('0x2f')][_0x5200('0x5b')](_0x195fe0,{'transaction':_0x39b9c6});});})[_0x5200('0x26')](function(){return db['Interval'][_0x5200('0x45')]({'where':{'IntervalId':_0x32d3d1[_0x5200('0x53')]['id']}});});}})[_0x5200('0x26')](respondWithResult(_0x451d6f,null))[_0x5200('0x47')](handleError(_0x451d6f,null));};