38db85dcd82914736cbe5d0550369251c710f4b7
[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 _0x78e0=['sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Intervals','userProfileId','autoAssociation','params','addInterval','IntervalId','findOne','getIntervals','addIntervals','sequelize','transaction','bulkCreate','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','offset','count','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','end','error','stack','name','index','map','Interval','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order'];(function(_0x3b4585,_0x16a9c2){var _0x551be9=function(_0x5cea93){while(--_0x5cea93){_0x3b4585['push'](_0x3b4585['shift']());}};_0x551be9(++_0x16a9c2);}(_0x78e0,0x12f));var _0x078e=function(_0x2776c0,_0x3bdc05){_0x2776c0=_0x2776c0-0x0;var _0x42b7b7=_0x78e0[_0x2776c0];return _0x42b7b7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x078e('0x0'));var zipdir=require(_0x078e('0x1'));var jsonpatch=require(_0x078e('0x2'));var rp=require(_0x078e('0x3'));var moment=require(_0x078e('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x078e('0x5'));var path=require('path');var sox=require(_0x078e('0x6'));var csv=require(_0x078e('0x7'));var ejs=require(_0x078e('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x078e('0x9'));var squel=require(_0x078e('0xa'));var crypto=require(_0x078e('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x078e('0xc'));var toCsv=require(_0x078e('0x7'));var querystring=require(_0x078e('0xd'));var Papa=require(_0x078e('0xe'));var Redis=require(_0x078e('0xf'));var authService=require(_0x078e('0x10'));var qs=require(_0x078e('0x11'));var as=require(_0x078e('0x12'));var hardwareService=require(_0x078e('0x13'));var logger=require(_0x078e('0x14'))(_0x078e('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x078e('0x16'));var db=require(_0x078e('0x17'))['db'];var extensions=require(_0x078e('0x18'));function respondWithStatusCode(_0x50756c,_0x1ddddf){_0x1ddddf=_0x1ddddf||0xcc;return function(_0x7af2c0){if(_0x7af2c0){return _0x50756c[_0x078e('0x19')](_0x1ddddf);}return _0x50756c[_0x078e('0x1a')](_0x1ddddf)['end']();};}function respondWithResult(_0x373585,_0x56dde){_0x56dde=_0x56dde||0xc8;return function(_0x3714a1){if(_0x3714a1){return _0x373585['status'](_0x56dde)[_0x078e('0x1b')](_0x3714a1);}};}function respondWithFilteredResult(_0x198c4f,_0x56cbf9){return function(_0x5998f1){if(_0x5998f1){var _0x2ac48e=typeof _0x56cbf9[_0x078e('0x1c')]==='undefined'&&typeof _0x56cbf9['limit']==='undefined';var _0x327492=_0x5998f1[_0x078e('0x1d')];var _0x2f347b=_0x2ac48e?0x0:_0x56cbf9[_0x078e('0x1c')];var _0xea12c2=_0x2ac48e?_0x5998f1[_0x078e('0x1d')]:_0x56cbf9['offset']+_0x56cbf9['limit'];var _0x205c74;if(_0xea12c2>=_0x327492){_0xea12c2=_0x327492;_0x205c74=0xc8;}else{_0x205c74=0xce;}_0x198c4f[_0x078e('0x1a')](_0x205c74);return _0x198c4f[_0x078e('0x1e')](_0x078e('0x1f'),_0x2f347b+'-'+_0xea12c2+'/'+_0x327492)[_0x078e('0x1b')](_0x5998f1);}return null;};}function patchUpdates(_0x3f4270){return function(_0x493a6b){try{jsonpatch[_0x078e('0x20')](_0x493a6b,_0x3f4270,!![]);}catch(_0x4f788d){return BPromise[_0x078e('0x21')](_0x4f788d);}return _0x493a6b[_0x078e('0x22')]();};}function saveUpdates(_0x2c1d4c,_0x1ef076){return function(_0x46dc37){if(_0x46dc37){return _0x46dc37[_0x078e('0x23')](_0x2c1d4c)[_0x078e('0x24')](function(_0x4ca5aa){return _0x4ca5aa;});}return null;};}function removeEntity(_0x19effd,_0x144733){return function(_0x344990){if(_0x344990){return _0x344990[_0x078e('0x25')]()[_0x078e('0x24')](function(){var _0xb8aa0a=_0x344990['get']({'plain':!![]});var _0x4faa10='Intervals';return db[_0x078e('0x26')][_0x078e('0x25')]({'where':{'type':_0x4faa10,'resourceId':_0xb8aa0a['id']}})[_0x078e('0x24')](function(){return _0x344990;});})[_0x078e('0x24')](function(){_0x19effd['status'](0xcc)[_0x078e('0x27')]();});}};}function handleEntityNotFound(_0x1fc7ff,_0x187915){return function(_0x2e1cf9){if(!_0x2e1cf9){_0x1fc7ff[_0x078e('0x19')](0x194);}return _0x2e1cf9;};}function handleError(_0x2975a4,_0x1314e0){_0x1314e0=_0x1314e0||0x1f4;return function(_0x31cc01){logger[_0x078e('0x28')](_0x31cc01[_0x078e('0x29')]);if(_0x31cc01[_0x078e('0x2a')]){delete _0x31cc01[_0x078e('0x2a')];}_0x2975a4[_0x078e('0x1a')](_0x1314e0)['send'](_0x31cc01);};}exports[_0x078e('0x2b')]=function(_0xe640ca,_0x46f434){var _0x3fd737={},_0x1467b1={},_0x5bf784={'count':0x0,'rows':[]};var _0x15936d=_[_0x078e('0x2c')](db[_0x078e('0x2d')]['rawAttributes'],function(_0x3def5b){return{'name':_0x3def5b[_0x078e('0x2e')],'type':_0x3def5b[_0x078e('0x2f')][_0x078e('0x30')]};});_0x1467b1[_0x078e('0x31')]=_['map'](_0x15936d,_0x078e('0x2a'));_0x1467b1[_0x078e('0x32')]=_[_0x078e('0x33')](_0xe640ca[_0x078e('0x32')]);_0x1467b1[_0x078e('0x34')]=_['intersection'](_0x1467b1[_0x078e('0x31')],_0x1467b1[_0x078e('0x32')]);_0x3fd737[_0x078e('0x35')]=_[_0x078e('0x36')](_0x1467b1[_0x078e('0x31')],qs[_0x078e('0x37')](_0xe640ca[_0x078e('0x32')]['fields']));_0x3fd737[_0x078e('0x35')]=_0x3fd737[_0x078e('0x35')][_0x078e('0x38')]?_0x3fd737['attributes']:_0x1467b1[_0x078e('0x31')];if(!_0xe640ca[_0x078e('0x32')][_0x078e('0x39')](_0x078e('0x3a'))){_0x3fd737[_0x078e('0x3b')]=qs['limit'](_0xe640ca[_0x078e('0x32')][_0x078e('0x3b')]);_0x3fd737[_0x078e('0x1c')]=qs[_0x078e('0x1c')](_0xe640ca[_0x078e('0x32')][_0x078e('0x1c')]);}_0x3fd737[_0x078e('0x3c')]=qs[_0x078e('0x3d')](_0xe640ca[_0x078e('0x32')][_0x078e('0x3d')]);_0x3fd737[_0x078e('0x3e')]=qs['filters'](_[_0x078e('0x3f')](_0xe640ca[_0x078e('0x32')],_0x1467b1[_0x078e('0x34')]),_0x15936d);if(_0xe640ca[_0x078e('0x32')][_0x078e('0x40')]){_0x3fd737[_0x078e('0x3e')]=_[_0x078e('0x41')](_0x3fd737['where'],{'$or':_['map'](_0x15936d,function(_0x14338a){if(_0x14338a[_0x078e('0x2f')]!==_0x078e('0x42')){var _0x1712d6={};_0x1712d6[_0x14338a[_0x078e('0x2a')]]={'$like':'%'+_0xe640ca['query'][_0x078e('0x40')]+'%'};return _0x1712d6;}})});}_0x3fd737=_[_0x078e('0x41')]({},_0x3fd737,_0xe640ca[_0x078e('0x43')]);var _0x232a5f={'where':_0x3fd737[_0x078e('0x3e')]};return db[_0x078e('0x2d')]['count'](_0x232a5f)[_0x078e('0x24')](function(_0x2c658c){_0x5bf784[_0x078e('0x1d')]=_0x2c658c;if(_0xe640ca[_0x078e('0x32')][_0x078e('0x44')]){_0x3fd737['include']=[{'all':!![]}];}return db[_0x078e('0x2d')][_0x078e('0x45')](_0x3fd737);})[_0x078e('0x24')](function(_0x1e6ccd){_0x5bf784[_0x078e('0x46')]=_0x1e6ccd;return _0x5bf784;})[_0x078e('0x24')](respondWithFilteredResult(_0x46f434,_0x3fd737))['catch'](handleError(_0x46f434,null));};exports[_0x078e('0x47')]=function(_0x4cd729,_0x1bb03e){var _0x42014e={'raw':!![],'where':{'id':_0x4cd729['params']['id']}},_0x2f0a02={};_0x2f0a02[_0x078e('0x31')]=_[_0x078e('0x33')](db['Interval']['rawAttributes']);_0x2f0a02[_0x078e('0x32')]=_[_0x078e('0x33')](_0x4cd729['query']);_0x2f0a02[_0x078e('0x34')]=_[_0x078e('0x36')](_0x2f0a02['model'],_0x2f0a02[_0x078e('0x32')]);_0x42014e[_0x078e('0x35')]=_['intersection'](_0x2f0a02['model'],qs[_0x078e('0x37')](_0x4cd729['query'][_0x078e('0x37')]));_0x42014e[_0x078e('0x35')]=_0x42014e[_0x078e('0x35')][_0x078e('0x38')]?_0x42014e[_0x078e('0x35')]:_0x2f0a02['model'];if(_0x4cd729[_0x078e('0x32')][_0x078e('0x44')]){_0x42014e['include']=[{'all':!![]}];}_0x42014e=_[_0x078e('0x41')]({},_0x42014e,_0x4cd729[_0x078e('0x43')]);return db[_0x078e('0x2d')][_0x078e('0x48')](_0x42014e)['then'](handleEntityNotFound(_0x1bb03e,null))[_0x078e('0x24')](respondWithResult(_0x1bb03e,null))[_0x078e('0x49')](handleError(_0x1bb03e,null));};exports['create']=function(_0x4bd4ed,_0x1fa263){return db['Interval'][_0x078e('0x4a')](_0x4bd4ed[_0x078e('0x4b')],{})[_0x078e('0x24')](function(_0x1ba902){var _0x3db4ef=_0x4bd4ed[_0x078e('0x4c')][_0x078e('0x4d')]({'plain':!![]});if(!_0x3db4ef)throw new Error(_0x078e('0x4e'));if(_0x3db4ef['role']===_0x078e('0x4c')){var _0x2be92c=_0x1ba902['get']({'plain':!![]});var _0x3f6e07=_0x078e('0x4f');return db['UserProfileSection'][_0x078e('0x48')]({'where':{'name':_0x3f6e07,'userProfileId':_0x3db4ef[_0x078e('0x50')]},'raw':!![]})[_0x078e('0x24')](function(_0x567055){if(_0x567055&&_0x567055[_0x078e('0x51')]===0x0){return db[_0x078e('0x26')][_0x078e('0x4a')]({'name':_0x2be92c[_0x078e('0x2a')],'resourceId':_0x2be92c['id'],'type':_0x567055[_0x078e('0x2a')],'sectionId':_0x567055['id']},{})[_0x078e('0x24')](function(){return _0x1ba902;});}else{return _0x1ba902;}})[_0x078e('0x49')](function(_0x36d212){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x36d212);throw _0x36d212;});}return _0x1ba902;})[_0x078e('0x24')](respondWithResult(_0x1fa263,0xc9))[_0x078e('0x49')](handleError(_0x1fa263,null));};exports[_0x078e('0x23')]=function(_0x5b57c2,_0x41e752){if(_0x5b57c2['body']['id']){delete _0x5b57c2[_0x078e('0x4b')]['id'];}return db[_0x078e('0x2d')][_0x078e('0x48')]({'where':{'id':_0x5b57c2[_0x078e('0x52')]['id']}})[_0x078e('0x24')](handleEntityNotFound(_0x41e752,null))['then'](saveUpdates(_0x5b57c2[_0x078e('0x4b')],null))[_0x078e('0x24')](respondWithResult(_0x41e752,null))[_0x078e('0x49')](handleError(_0x41e752,null));};exports['destroy']=function(_0x4f948a,_0xc242e4){return db[_0x078e('0x2d')][_0x078e('0x48')]({'where':{'id':_0x4f948a[_0x078e('0x52')]['id']}})[_0x078e('0x24')](handleEntityNotFound(_0xc242e4,null))['then'](removeEntity(_0xc242e4,null))['catch'](handleError(_0xc242e4,null));};exports[_0x078e('0x53')]=function(_0x626604,_0x1e14b1,_0x2ec36c){if(_0x626604['body']['id']){delete _0x626604[_0x078e('0x4b')]['id'];}return db[_0x078e('0x2d')][_0x078e('0x48')]({'where':{'id':_0x626604[_0x078e('0x52')]['id']}})[_0x078e('0x24')](handleEntityNotFound(_0x1e14b1,null))[_0x078e('0x24')](function(_0x4b2601){if(_0x4b2601){_0x626604[_0x078e('0x4b')][_0x078e('0x54')]=_0x4b2601['id'];return db[_0x078e('0x2d')][_0x078e('0x4a')](_0x626604[_0x078e('0x4b')]);}})[_0x078e('0x24')](respondWithResult(_0x1e14b1,null))['catch'](handleError(_0x1e14b1,null));};exports['getIntervals']=function(_0x3707ee,_0x11d9f2,_0x2c239d){var _0x3b2c96={};var _0x41b3a4={};var _0x2c465e;var _0x97e854;return db[_0x078e('0x2d')][_0x078e('0x55')]({'where':{'id':_0x3707ee['params']['id']}})[_0x078e('0x24')](handleEntityNotFound(_0x11d9f2,null))[_0x078e('0x24')](function(_0x1d5d92){if(_0x1d5d92){_0x2c465e=_0x1d5d92;_0x41b3a4[_0x078e('0x31')]=_['keys'](db['Interval']['rawAttributes']);_0x41b3a4[_0x078e('0x32')]=_['keys'](_0x3707ee[_0x078e('0x32')]);_0x41b3a4[_0x078e('0x34')]=_[_0x078e('0x36')](_0x41b3a4[_0x078e('0x31')],_0x41b3a4['query']);_0x3b2c96[_0x078e('0x35')]=_['intersection'](_0x41b3a4[_0x078e('0x31')],qs[_0x078e('0x37')](_0x3707ee[_0x078e('0x32')][_0x078e('0x37')]));_0x3b2c96['attributes']=_0x3b2c96[_0x078e('0x35')][_0x078e('0x38')]?_0x3b2c96[_0x078e('0x35')]:_0x41b3a4['model'];_0x3b2c96[_0x078e('0x3c')]=qs[_0x078e('0x3d')](_0x3707ee['query'][_0x078e('0x3d')]);_0x3b2c96['where']=qs[_0x078e('0x34')](_['pick'](_0x3707ee['query'],_0x41b3a4[_0x078e('0x34')]));if(_0x3707ee[_0x078e('0x32')][_0x078e('0x40')]){_0x3b2c96[_0x078e('0x3e')]=_[_0x078e('0x41')](_0x3b2c96[_0x078e('0x3e')],{'$or':_[_0x078e('0x2c')](_0x3b2c96['attributes'],function(_0x41efef){var _0x5c6957={};_0x5c6957[_0x41efef]={'$like':'%'+_0x3707ee[_0x078e('0x32')][_0x078e('0x40')]+'%'};return _0x5c6957;})});}_0x3b2c96=_['merge']({},_0x3b2c96,_0x3707ee[_0x078e('0x43')]);return _0x2c465e[_0x078e('0x56')](_0x3b2c96);}})['then'](function(_0x471c43){if(_0x471c43){_0x97e854=_0x471c43[_0x078e('0x38')];if(!_0x3707ee[_0x078e('0x32')][_0x078e('0x39')](_0x078e('0x3a'))){_0x3b2c96[_0x078e('0x3b')]=qs['limit'](_0x3707ee[_0x078e('0x32')][_0x078e('0x3b')]);_0x3b2c96[_0x078e('0x1c')]=qs[_0x078e('0x1c')](_0x3707ee[_0x078e('0x32')][_0x078e('0x1c')]);}return _0x2c465e['getIntervals'](_0x3b2c96);}})[_0x078e('0x24')](function(_0x44f2f1){if(_0x44f2f1){return _0x44f2f1?{'count':_0x97e854,'rows':_0x44f2f1}:null;}})[_0x078e('0x24')](respondWithResult(_0x11d9f2,null))[_0x078e('0x49')](handleError(_0x11d9f2,null));};exports[_0x078e('0x57')]=function(_0x4cc0b8,_0x27799a,_0x242c94){return db[_0x078e('0x2d')][_0x078e('0x55')]({'where':{'id':_0x4cc0b8[_0x078e('0x52')]['id']}})[_0x078e('0x24')](handleEntityNotFound(_0x27799a,null))[_0x078e('0x24')](function(_0x49e048){if(_0x49e048){return db[_0x078e('0x58')][_0x078e('0x59')](function(_0x138e8a){return db[_0x078e('0x2d')][_0x078e('0x25')]({'where':{'IntervalId':_0x4cc0b8['params']['id']},'transaction':_0x138e8a})[_0x078e('0x24')](function(_0x1ab33d){var _0x258548=_['map'](_0x4cc0b8['body'],function(_0x37bd22){delete _0x37bd22['id'];_0x37bd22[_0x078e('0x54')]=_0x4cc0b8[_0x078e('0x52')]['id'];return _0x37bd22;});return db[_0x078e('0x2d')][_0x078e('0x5a')](_0x258548,{'transaction':_0x138e8a});});})[_0x078e('0x24')](function(){return db[_0x078e('0x2d')][_0x078e('0x45')]({'where':{'IntervalId':_0x4cc0b8[_0x078e('0x52')]['id']}});});}})[_0x078e('0x24')](respondWithResult(_0x27799a,null))[_0x078e('0x49')](handleError(_0x27799a,null));};