Built motion from commit 52c8a02d.|2.6.29
[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 _0xa3c7=['../../components/extensions/rewrite','sendStatus','status','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','destroy','then','get','UserProfileResource','end','error','name','index','Interval','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','filter','where','merge','VIRTUAL','include','findAll','rows','catch','show','params','includeAll','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','getIntervals','findOne','pick','nolimit','addIntervals','sequelize','transaction','IntervalId','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb'];(function(_0x4dae00,_0x15b194){var _0x16bf42=function(_0x5f2a9a){while(--_0x5f2a9a){_0x4dae00['push'](_0x4dae00['shift']());}};_0x16bf42(++_0x15b194);}(_0xa3c7,0xfa));var _0x7a3c=function(_0x1be03d,_0x46cccf){_0x1be03d=_0x1be03d-0x0;var _0x45aeda=_0xa3c7[_0x1be03d];return _0x45aeda;};'use strict';var emlformat=require(_0x7a3c('0x0'));var rimraf=require(_0x7a3c('0x1'));var zipdir=require(_0x7a3c('0x2'));var jsonpatch=require(_0x7a3c('0x3'));var rp=require(_0x7a3c('0x4'));var moment=require(_0x7a3c('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x7a3c('0x6'));var path=require(_0x7a3c('0x7'));var sox=require(_0x7a3c('0x8'));var csv=require(_0x7a3c('0x9'));var ejs=require(_0x7a3c('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x7a3c('0xb'));var jsforce=require(_0x7a3c('0xc'));var deskjs=require(_0x7a3c('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7a3c('0xe'));var Papa=require(_0x7a3c('0xf'));var Redis=require(_0x7a3c('0x10'));var authService=require(_0x7a3c('0x11'));var qs=require(_0x7a3c('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7a3c('0x13'));var logger=require(_0x7a3c('0x14'))('api');var utils=require(_0x7a3c('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7a3c('0x16'))['db'];var extensions=require(_0x7a3c('0x17'));function respondWithStatusCode(_0x1e7822,_0x1d3c41){_0x1d3c41=_0x1d3c41||0xcc;return function(_0x14f0c7){if(_0x14f0c7){return _0x1e7822[_0x7a3c('0x18')](_0x1d3c41);}return _0x1e7822[_0x7a3c('0x19')](_0x1d3c41)['end']();};}function respondWithResult(_0x4a7fda,_0x11dae9){_0x11dae9=_0x11dae9||0xc8;return function(_0x3b3f98){if(_0x3b3f98){return _0x4a7fda[_0x7a3c('0x19')](_0x11dae9)[_0x7a3c('0x1a')](_0x3b3f98);}};}function respondWithFilteredResult(_0x118e98,_0x1668b7){return function(_0x2b4d68){if(_0x2b4d68){var _0x3ba32c=typeof _0x1668b7['offset']===_0x7a3c('0x1b')&&typeof _0x1668b7[_0x7a3c('0x1c')]==='undefined';var _0x487612=_0x2b4d68['count'];var _0x454326=_0x3ba32c?0x0:_0x1668b7[_0x7a3c('0x1d')];var _0x459db2=_0x3ba32c?_0x2b4d68[_0x7a3c('0x1e')]:_0x1668b7[_0x7a3c('0x1d')]+_0x1668b7[_0x7a3c('0x1c')];var _0x1a3800;if(_0x459db2>=_0x487612){_0x459db2=_0x487612;_0x1a3800=0xc8;}else{_0x1a3800=0xce;}_0x118e98[_0x7a3c('0x19')](_0x1a3800);return _0x118e98[_0x7a3c('0x1f')](_0x7a3c('0x20'),_0x454326+'-'+_0x459db2+'/'+_0x487612)[_0x7a3c('0x1a')](_0x2b4d68);}return null;};}function patchUpdates(_0x2f1de5){return function(_0x1d1c20){try{jsonpatch[_0x7a3c('0x21')](_0x1d1c20,_0x2f1de5,!![]);}catch(_0x51b64a){return BPromise[_0x7a3c('0x22')](_0x51b64a);}return _0x1d1c20[_0x7a3c('0x23')]();};}function saveUpdates(_0x58c8f8,_0x2a4e19){return function(_0x27367a){if(_0x27367a){return _0x27367a[_0x7a3c('0x24')](_0x58c8f8)['then'](function(_0x5358b9){return _0x5358b9;});}return null;};}function removeEntity(_0x1e605b,_0x523016){return function(_0x5abd86){if(_0x5abd86){return _0x5abd86[_0x7a3c('0x25')]()[_0x7a3c('0x26')](function(){var _0x1cbb1b=_0x5abd86[_0x7a3c('0x27')]({'plain':!![]});var _0x2876a6='Intervals';return db[_0x7a3c('0x28')][_0x7a3c('0x25')]({'where':{'type':_0x2876a6,'resourceId':_0x1cbb1b['id']}})[_0x7a3c('0x26')](function(){return _0x5abd86;});})[_0x7a3c('0x26')](function(){_0x1e605b[_0x7a3c('0x19')](0xcc)[_0x7a3c('0x29')]();});}};}function handleEntityNotFound(_0x4d419e,_0x4e473c){return function(_0x533fa0){if(!_0x533fa0){_0x4d419e['sendStatus'](0x194);}return _0x533fa0;};}function handleError(_0x353f3d,_0x3bf2bd){_0x3bf2bd=_0x3bf2bd||0x1f4;return function(_0xd7a886){logger[_0x7a3c('0x2a')](_0xd7a886['stack']);if(_0xd7a886['name']){delete _0xd7a886[_0x7a3c('0x2b')];}_0x353f3d[_0x7a3c('0x19')](_0x3bf2bd)['send'](_0xd7a886);};}exports[_0x7a3c('0x2c')]=function(_0x438f33,_0x1653d1){var _0x57b5b7={},_0x51beee={},_0x362965={'count':0x0,'rows':[]};var _0x8b463b=_['map'](db[_0x7a3c('0x2d')][_0x7a3c('0x2e')],function(_0x26238b){return{'name':_0x26238b[_0x7a3c('0x2f')],'type':_0x26238b[_0x7a3c('0x30')][_0x7a3c('0x31')]};});_0x51beee[_0x7a3c('0x32')]=_[_0x7a3c('0x33')](_0x8b463b,'name');_0x51beee['query']=_[_0x7a3c('0x34')](_0x438f33[_0x7a3c('0x35')]);_0x51beee[_0x7a3c('0x36')]=_[_0x7a3c('0x37')](_0x51beee['model'],_0x51beee[_0x7a3c('0x35')]);_0x57b5b7['attributes']=_[_0x7a3c('0x37')](_0x51beee[_0x7a3c('0x32')],qs[_0x7a3c('0x38')](_0x438f33[_0x7a3c('0x35')][_0x7a3c('0x38')]));_0x57b5b7[_0x7a3c('0x39')]=_0x57b5b7[_0x7a3c('0x39')][_0x7a3c('0x3a')]?_0x57b5b7[_0x7a3c('0x39')]:_0x51beee[_0x7a3c('0x32')];if(!_0x438f33[_0x7a3c('0x35')][_0x7a3c('0x3b')]('nolimit')){_0x57b5b7[_0x7a3c('0x1c')]=qs[_0x7a3c('0x1c')](_0x438f33[_0x7a3c('0x35')][_0x7a3c('0x1c')]);_0x57b5b7['offset']=qs['offset'](_0x438f33[_0x7a3c('0x35')]['offset']);}_0x57b5b7[_0x7a3c('0x3c')]=qs[_0x7a3c('0x3d')](_0x438f33[_0x7a3c('0x35')][_0x7a3c('0x3d')]);_0x57b5b7['where']=qs[_0x7a3c('0x36')](_['pick'](_0x438f33[_0x7a3c('0x35')],_0x51beee[_0x7a3c('0x36')]),_0x8b463b);if(_0x438f33['query'][_0x7a3c('0x3e')]){_0x57b5b7[_0x7a3c('0x3f')]=_[_0x7a3c('0x40')](_0x57b5b7[_0x7a3c('0x3f')],{'$or':_[_0x7a3c('0x33')](_0x8b463b,function(_0x1d28d2){if(_0x1d28d2[_0x7a3c('0x30')]!==_0x7a3c('0x41')){var _0x168d1c={};_0x168d1c[_0x1d28d2[_0x7a3c('0x2b')]]={'$like':'%'+_0x438f33[_0x7a3c('0x35')][_0x7a3c('0x3e')]+'%'};return _0x168d1c;}})});}_0x57b5b7=_[_0x7a3c('0x40')]({},_0x57b5b7,_0x438f33['options']);var _0x2179e0={'where':_0x57b5b7[_0x7a3c('0x3f')]};return db[_0x7a3c('0x2d')][_0x7a3c('0x1e')](_0x2179e0)[_0x7a3c('0x26')](function(_0x1145f6){_0x362965['count']=_0x1145f6;if(_0x438f33['query']['includeAll']){_0x57b5b7[_0x7a3c('0x42')]=[{'all':!![]}];}return db[_0x7a3c('0x2d')][_0x7a3c('0x43')](_0x57b5b7);})[_0x7a3c('0x26')](function(_0x42c77a){_0x362965[_0x7a3c('0x44')]=_0x42c77a;return _0x362965;})['then'](respondWithFilteredResult(_0x1653d1,_0x57b5b7))[_0x7a3c('0x45')](handleError(_0x1653d1,null));};exports[_0x7a3c('0x46')]=function(_0x4287ab,_0x1b9c77){var _0x26b7a0={'raw':!![],'where':{'id':_0x4287ab[_0x7a3c('0x47')]['id']}},_0x3f1fe9={};_0x3f1fe9[_0x7a3c('0x32')]=_[_0x7a3c('0x34')](db[_0x7a3c('0x2d')]['rawAttributes']);_0x3f1fe9[_0x7a3c('0x35')]=_[_0x7a3c('0x34')](_0x4287ab[_0x7a3c('0x35')]);_0x3f1fe9[_0x7a3c('0x36')]=_[_0x7a3c('0x37')](_0x3f1fe9[_0x7a3c('0x32')],_0x3f1fe9[_0x7a3c('0x35')]);_0x26b7a0[_0x7a3c('0x39')]=_[_0x7a3c('0x37')](_0x3f1fe9['model'],qs[_0x7a3c('0x38')](_0x4287ab[_0x7a3c('0x35')][_0x7a3c('0x38')]));_0x26b7a0['attributes']=_0x26b7a0[_0x7a3c('0x39')]['length']?_0x26b7a0['attributes']:_0x3f1fe9[_0x7a3c('0x32')];if(_0x4287ab[_0x7a3c('0x35')][_0x7a3c('0x48')]){_0x26b7a0[_0x7a3c('0x42')]=[{'all':!![]}];}_0x26b7a0=_[_0x7a3c('0x40')]({},_0x26b7a0,_0x4287ab[_0x7a3c('0x49')]);return db[_0x7a3c('0x2d')][_0x7a3c('0x4a')](_0x26b7a0)[_0x7a3c('0x26')](handleEntityNotFound(_0x1b9c77,null))[_0x7a3c('0x26')](respondWithResult(_0x1b9c77,null))['catch'](handleError(_0x1b9c77,null));};exports[_0x7a3c('0x4b')]=function(_0x3082e7,_0x5c5850){return db['Interval'][_0x7a3c('0x4b')](_0x3082e7[_0x7a3c('0x4c')],{})[_0x7a3c('0x26')](function(_0xacfbc8){var _0x9e3472=_0x3082e7['user'][_0x7a3c('0x27')]({'plain':!![]});if(!_0x9e3472)throw new Error(_0x7a3c('0x4d'));if(_0x9e3472['role']==='user'){var _0x3958ef=_0xacfbc8['get']({'plain':!![]});var _0xd3afbf='Intervals';return db['UserProfileSection'][_0x7a3c('0x4a')]({'where':{'name':_0xd3afbf,'userProfileId':_0x9e3472[_0x7a3c('0x4e')]},'raw':!![]})[_0x7a3c('0x26')](function(_0x24ad4b){if(_0x24ad4b&&_0x24ad4b[_0x7a3c('0x4f')]===0x0){return db['UserProfileResource'][_0x7a3c('0x4b')]({'name':_0x3958ef[_0x7a3c('0x2b')],'resourceId':_0x3958ef['id'],'type':_0x24ad4b['name'],'sectionId':_0x24ad4b['id']},{})[_0x7a3c('0x26')](function(){return _0xacfbc8;});}else{return _0xacfbc8;}})[_0x7a3c('0x45')](function(_0x9ce2c){logger[_0x7a3c('0x2a')](_0x7a3c('0x50'),_0x9ce2c);throw _0x9ce2c;});}return _0xacfbc8;})[_0x7a3c('0x26')](respondWithResult(_0x5c5850,0xc9))['catch'](handleError(_0x5c5850,null));};exports[_0x7a3c('0x24')]=function(_0x38a4f2,_0x1306eb){if(_0x38a4f2[_0x7a3c('0x4c')]['id']){delete _0x38a4f2[_0x7a3c('0x4c')]['id'];}return db[_0x7a3c('0x2d')][_0x7a3c('0x4a')]({'where':{'id':_0x38a4f2['params']['id']}})['then'](handleEntityNotFound(_0x1306eb,null))['then'](saveUpdates(_0x38a4f2[_0x7a3c('0x4c')],null))[_0x7a3c('0x26')](respondWithResult(_0x1306eb,null))[_0x7a3c('0x45')](handleError(_0x1306eb,null));};exports[_0x7a3c('0x25')]=function(_0x544d62,_0x5484fa){return db['Interval'][_0x7a3c('0x4a')]({'where':{'id':_0x544d62[_0x7a3c('0x47')]['id']}})['then'](handleEntityNotFound(_0x5484fa,null))[_0x7a3c('0x26')](removeEntity(_0x5484fa,null))[_0x7a3c('0x45')](handleError(_0x5484fa,null));};exports[_0x7a3c('0x51')]=function(_0x8fd9f4,_0x2f1c4b,_0x488830){if(_0x8fd9f4['body']['id']){delete _0x8fd9f4[_0x7a3c('0x4c')]['id'];}return db[_0x7a3c('0x2d')][_0x7a3c('0x4a')]({'where':{'id':_0x8fd9f4[_0x7a3c('0x47')]['id']}})[_0x7a3c('0x26')](handleEntityNotFound(_0x2f1c4b,null))['then'](function(_0x263746){if(_0x263746){_0x8fd9f4[_0x7a3c('0x4c')]['IntervalId']=_0x263746['id'];return db['Interval'][_0x7a3c('0x4b')](_0x8fd9f4[_0x7a3c('0x4c')]);}})[_0x7a3c('0x26')](respondWithResult(_0x2f1c4b,null))[_0x7a3c('0x45')](handleError(_0x2f1c4b,null));};exports[_0x7a3c('0x52')]=function(_0x51ab56,_0x1b72f1,_0x955055){var _0x5f0022={};var _0x1cfbbb={};var _0x6a5b76;var _0xa7181b;return db[_0x7a3c('0x2d')][_0x7a3c('0x53')]({'where':{'id':_0x51ab56['params']['id']}})[_0x7a3c('0x26')](handleEntityNotFound(_0x1b72f1,null))['then'](function(_0x27a855){if(_0x27a855){_0x6a5b76=_0x27a855;_0x1cfbbb['model']=_[_0x7a3c('0x34')](db[_0x7a3c('0x2d')]['rawAttributes']);_0x1cfbbb[_0x7a3c('0x35')]=_['keys'](_0x51ab56['query']);_0x1cfbbb[_0x7a3c('0x36')]=_[_0x7a3c('0x37')](_0x1cfbbb[_0x7a3c('0x32')],_0x1cfbbb[_0x7a3c('0x35')]);_0x5f0022[_0x7a3c('0x39')]=_[_0x7a3c('0x37')](_0x1cfbbb['model'],qs[_0x7a3c('0x38')](_0x51ab56['query'][_0x7a3c('0x38')]));_0x5f0022[_0x7a3c('0x39')]=_0x5f0022[_0x7a3c('0x39')][_0x7a3c('0x3a')]?_0x5f0022[_0x7a3c('0x39')]:_0x1cfbbb['model'];_0x5f0022['order']=qs[_0x7a3c('0x3d')](_0x51ab56['query'][_0x7a3c('0x3d')]);_0x5f0022[_0x7a3c('0x3f')]=qs[_0x7a3c('0x36')](_[_0x7a3c('0x54')](_0x51ab56['query'],_0x1cfbbb[_0x7a3c('0x36')]));if(_0x51ab56['query'][_0x7a3c('0x3e')]){_0x5f0022[_0x7a3c('0x3f')]=_[_0x7a3c('0x40')](_0x5f0022[_0x7a3c('0x3f')],{'$or':_[_0x7a3c('0x33')](_0x5f0022[_0x7a3c('0x39')],function(_0x405c58){var _0x49c305={};_0x49c305[_0x405c58]={'$like':'%'+_0x51ab56[_0x7a3c('0x35')]['filter']+'%'};return _0x49c305;})});}_0x5f0022=_['merge']({},_0x5f0022,_0x51ab56[_0x7a3c('0x49')]);return _0x6a5b76['getIntervals'](_0x5f0022);}})[_0x7a3c('0x26')](function(_0x2978cc){if(_0x2978cc){_0xa7181b=_0x2978cc[_0x7a3c('0x3a')];if(!_0x51ab56['query'][_0x7a3c('0x3b')](_0x7a3c('0x55'))){_0x5f0022['limit']=qs[_0x7a3c('0x1c')](_0x51ab56[_0x7a3c('0x35')][_0x7a3c('0x1c')]);_0x5f0022[_0x7a3c('0x1d')]=qs[_0x7a3c('0x1d')](_0x51ab56[_0x7a3c('0x35')][_0x7a3c('0x1d')]);}return _0x6a5b76[_0x7a3c('0x52')](_0x5f0022);}})[_0x7a3c('0x26')](function(_0x109305){if(_0x109305){return _0x109305?{'count':_0xa7181b,'rows':_0x109305}:null;}})[_0x7a3c('0x26')](respondWithResult(_0x1b72f1,null))[_0x7a3c('0x45')](handleError(_0x1b72f1,null));};exports[_0x7a3c('0x56')]=function(_0x107ca7,_0x2b605,_0x489cca){return db[_0x7a3c('0x2d')][_0x7a3c('0x53')]({'where':{'id':_0x107ca7[_0x7a3c('0x47')]['id']}})[_0x7a3c('0x26')](handleEntityNotFound(_0x2b605,null))[_0x7a3c('0x26')](function(_0x19d3f7){if(_0x19d3f7){return db[_0x7a3c('0x57')][_0x7a3c('0x58')](function(_0x528f58){return db['Interval'][_0x7a3c('0x25')]({'where':{'IntervalId':_0x107ca7[_0x7a3c('0x47')]['id']},'transaction':_0x528f58})[_0x7a3c('0x26')](function(_0x269cd8){var _0x45fd3d=_[_0x7a3c('0x33')](_0x107ca7[_0x7a3c('0x4c')],function(_0x5a57ec){delete _0x5a57ec['id'];_0x5a57ec[_0x7a3c('0x59')]=_0x107ca7[_0x7a3c('0x47')]['id'];return _0x5a57ec;});return db[_0x7a3c('0x2d')][_0x7a3c('0x5a')](_0x45fd3d,{'transaction':_0x528f58});});})[_0x7a3c('0x26')](function(){return db['Interval']['findAll']({'where':{'IntervalId':_0x107ca7[_0x7a3c('0x47')]['id']}});});}})[_0x7a3c('0x26')](respondWithResult(_0x2b605,null))[_0x7a3c('0x45')](handleError(_0x2b605,null));};