8f2b6855450fd2490e6d3bb6cc271b384c9de543
[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 _0x4f66=['../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','get','Intervals','UserProfileResource','sendStatus','error','send','index','rawAttributes','fieldName','type','model','name','query','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','options','Interval','findAll','rows','show','params','keys','includeAll','include','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','getIntervals','map','hasOwnProperty','addIntervals','findOne','sequelize','transaction','bulkCreate','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x43459b,_0x220fae){var _0x557c66=function(_0xc4fd96){while(--_0xc4fd96){_0x43459b['push'](_0x43459b['shift']());}};_0x557c66(++_0x220fae);}(_0x4f66,0x1b9));var _0x64f6=function(_0x111ce3,_0x5e12aa){_0x111ce3=_0x111ce3-0x0;var _0xd0c223=_0x4f66[_0x111ce3];return _0xd0c223;};'use strict';var pdf=require(_0x64f6('0x0'));var emlformat=require(_0x64f6('0x1'));var rimraf=require(_0x64f6('0x2'));var zipdir=require(_0x64f6('0x3'));var jsonpatch=require(_0x64f6('0x4'));var rp=require(_0x64f6('0x5'));var moment=require(_0x64f6('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x64f6('0x7'));var path=require(_0x64f6('0x8'));var sox=require(_0x64f6('0x9'));var csv=require(_0x64f6('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x64f6('0xb'));var squel=require('squel');var crypto=require(_0x64f6('0xc'));var jsforce=require(_0x64f6('0xd'));var deskjs=require(_0x64f6('0xe'));var toCsv=require(_0x64f6('0xa'));var querystring=require(_0x64f6('0xf'));var Papa=require(_0x64f6('0x10'));var Redis=require(_0x64f6('0x11'));var authService=require(_0x64f6('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x64f6('0x13'));var logger=require(_0x64f6('0x14'))(_0x64f6('0x15'));var utils=require(_0x64f6('0x16'));var config=require(_0x64f6('0x17'));var db=require(_0x64f6('0x18'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x38776f,_0x54c587){_0x54c587=_0x54c587||0xcc;return function(_0x3a24fd){if(_0x3a24fd){return _0x38776f['sendStatus'](_0x54c587);}return _0x38776f[_0x64f6('0x19')](_0x54c587)[_0x64f6('0x1a')]();};}function respondWithResult(_0x1e2e34,_0x20c973){_0x20c973=_0x20c973||0xc8;return function(_0x3b23d0){if(_0x3b23d0){return _0x1e2e34[_0x64f6('0x19')](_0x20c973)[_0x64f6('0x1b')](_0x3b23d0);}};}function respondWithFilteredResult(_0x316597,_0x3a8883){return function(_0x13c658){if(_0x13c658){var _0x18515f=_0x13c658[_0x64f6('0x1c')],_0x36cd81=_0x3a8883[_0x64f6('0x1d')],_0x576aeb=_0x3a8883[_0x64f6('0x1d')]+_0x3a8883[_0x64f6('0x1e')],_0x545d2a;if(_0x576aeb>=_0x18515f){_0x576aeb=_0x18515f;_0x545d2a=0xc8;}else{_0x545d2a=0xce;}_0x316597[_0x64f6('0x19')](_0x545d2a);return _0x316597[_0x64f6('0x1f')](_0x64f6('0x20'),_0x36cd81+'-'+_0x576aeb+'/'+_0x18515f)['json'](_0x13c658);}return null;};}function patchUpdates(_0x238e88){return function(_0x534bfe){try{jsonpatch['apply'](_0x534bfe,_0x238e88,!![]);}catch(_0x4b627a){return BPromise[_0x64f6('0x21')](_0x4b627a);}return _0x534bfe[_0x64f6('0x22')]();};}function saveUpdates(_0x773318,_0x3566d4){return function(_0x385d0f){if(_0x385d0f){return _0x385d0f[_0x64f6('0x23')](_0x773318)[_0x64f6('0x24')](function(_0x2fd208){return _0x2fd208;});}return null;};}function removeEntity(_0x28b974,_0x4eff98){return function(_0x9c950c){if(_0x9c950c){return _0x9c950c[_0x64f6('0x25')]()[_0x64f6('0x24')](function(){var _0x5cd616=_0x9c950c[_0x64f6('0x26')]({'plain':!![]});var _0x391483=_0x64f6('0x27');return db[_0x64f6('0x28')][_0x64f6('0x25')]({'where':{'type':_0x391483,'resourceId':_0x5cd616['id']}})['then'](function(){return _0x9c950c;});})['then'](function(){_0x28b974[_0x64f6('0x19')](0xcc)[_0x64f6('0x1a')]();});}};}function handleEntityNotFound(_0x24359f,_0x160255){return function(_0xea95a3){if(!_0xea95a3){_0x24359f[_0x64f6('0x29')](0x194);}return _0xea95a3;};}function handleError(_0x6952ea,_0x1774bb){_0x1774bb=_0x1774bb||0x1f4;return function(_0x5daf28){logger[_0x64f6('0x2a')](_0x5daf28['stack']);if(_0x5daf28['name']){delete _0x5daf28['name'];}_0x6952ea['status'](_0x1774bb)[_0x64f6('0x2b')](_0x5daf28);};}exports[_0x64f6('0x2c')]=function(_0x58dcbc,_0xc80291){var _0x23df17={},_0x45f0cb={},_0x348b97={'count':0x0,'rows':[]};var _0x147b38=_['map'](db['Interval'][_0x64f6('0x2d')],function(_0xaca904){return{'name':_0xaca904[_0x64f6('0x2e')],'type':_0xaca904[_0x64f6('0x2f')]['key']};});_0x45f0cb[_0x64f6('0x30')]=_['map'](_0x147b38,_0x64f6('0x31'));_0x45f0cb['query']=_['keys'](_0x58dcbc[_0x64f6('0x32')]);_0x45f0cb[_0x64f6('0x33')]=_['intersection'](_0x45f0cb[_0x64f6('0x30')],_0x45f0cb[_0x64f6('0x32')]);_0x23df17[_0x64f6('0x34')]=_[_0x64f6('0x35')](_0x45f0cb[_0x64f6('0x30')],qs[_0x64f6('0x36')](_0x58dcbc[_0x64f6('0x32')][_0x64f6('0x36')]));_0x23df17[_0x64f6('0x34')]=_0x23df17[_0x64f6('0x34')][_0x64f6('0x37')]?_0x23df17[_0x64f6('0x34')]:_0x45f0cb['model'];if(!_0x58dcbc[_0x64f6('0x32')]['hasOwnProperty'](_0x64f6('0x38'))){_0x23df17['limit']=qs[_0x64f6('0x1e')](_0x58dcbc[_0x64f6('0x32')]['limit']);_0x23df17[_0x64f6('0x1d')]=qs[_0x64f6('0x1d')](_0x58dcbc[_0x64f6('0x32')][_0x64f6('0x1d')]);}_0x23df17[_0x64f6('0x39')]=qs[_0x64f6('0x3a')](_0x58dcbc[_0x64f6('0x32')][_0x64f6('0x3a')]);_0x23df17[_0x64f6('0x3b')]=qs[_0x64f6('0x33')](_[_0x64f6('0x3c')](_0x58dcbc[_0x64f6('0x32')],_0x45f0cb[_0x64f6('0x33')]),_0x147b38);if(_0x58dcbc['query'][_0x64f6('0x3d')]){_0x23df17[_0x64f6('0x3b')]=_[_0x64f6('0x3e')](_0x23df17[_0x64f6('0x3b')],{'$or':_['map'](_0x147b38,function(_0x36693b){if(_0x36693b[_0x64f6('0x2f')]!=='VIRTUAL'){var _0x2a6131={};_0x2a6131[_0x36693b[_0x64f6('0x31')]]={'$like':'%'+_0x58dcbc[_0x64f6('0x32')]['filter']+'%'};return _0x2a6131;}})});}_0x23df17=_[_0x64f6('0x3e')]({},_0x23df17,_0x58dcbc[_0x64f6('0x3f')]);var _0x246c76={'where':_0x23df17[_0x64f6('0x3b')]};return db['Interval']['count'](_0x246c76)[_0x64f6('0x24')](function(_0x3cda9d){_0x348b97[_0x64f6('0x1c')]=_0x3cda9d;if(_0x58dcbc[_0x64f6('0x32')]['includeAll']){_0x23df17['include']=[{'all':!![]}];}return db[_0x64f6('0x40')][_0x64f6('0x41')](_0x23df17);})[_0x64f6('0x24')](function(_0x491266){_0x348b97[_0x64f6('0x42')]=_0x491266;return _0x348b97;})[_0x64f6('0x24')](respondWithFilteredResult(_0xc80291,_0x23df17))['catch'](handleError(_0xc80291,null));};exports[_0x64f6('0x43')]=function(_0x24a7e9,_0x3c81e7){var _0x3d45ad={'raw':!![],'where':{'id':_0x24a7e9[_0x64f6('0x44')]['id']}},_0x24d2a0={};_0x24d2a0['model']=_[_0x64f6('0x45')](db[_0x64f6('0x40')][_0x64f6('0x2d')]);_0x24d2a0['query']=_[_0x64f6('0x45')](_0x24a7e9[_0x64f6('0x32')]);_0x24d2a0[_0x64f6('0x33')]=_['intersection'](_0x24d2a0[_0x64f6('0x30')],_0x24d2a0[_0x64f6('0x32')]);_0x3d45ad[_0x64f6('0x34')]=_[_0x64f6('0x35')](_0x24d2a0[_0x64f6('0x30')],qs['fields'](_0x24a7e9[_0x64f6('0x32')]['fields']));_0x3d45ad[_0x64f6('0x34')]=_0x3d45ad[_0x64f6('0x34')][_0x64f6('0x37')]?_0x3d45ad['attributes']:_0x24d2a0[_0x64f6('0x30')];if(_0x24a7e9[_0x64f6('0x32')][_0x64f6('0x46')]){_0x3d45ad[_0x64f6('0x47')]=[{'all':!![]}];}_0x3d45ad=_[_0x64f6('0x3e')]({},_0x3d45ad,_0x24a7e9[_0x64f6('0x3f')]);return db[_0x64f6('0x40')]['find'](_0x3d45ad)[_0x64f6('0x24')](handleEntityNotFound(_0x3c81e7,null))[_0x64f6('0x24')](respondWithResult(_0x3c81e7,null))[_0x64f6('0x48')](handleError(_0x3c81e7,null));};exports[_0x64f6('0x49')]=function(_0x5c3b35,_0xa0126e){return db['Interval']['create'](_0x5c3b35[_0x64f6('0x4a')],{})[_0x64f6('0x24')](function(_0x967f71){var _0x5d53b3=_0x5c3b35[_0x64f6('0x4b')][_0x64f6('0x26')]({'plain':!![]});if(!_0x5d53b3)throw new Error(_0x64f6('0x4c'));if(_0x5d53b3[_0x64f6('0x4d')]==='user'){var _0x8b7298=_0x967f71['get']({'plain':!![]});var _0x5dda07='Intervals';return db[_0x64f6('0x4e')][_0x64f6('0x4f')]({'where':{'name':_0x5dda07,'userProfileId':_0x5d53b3[_0x64f6('0x50')]},'raw':!![]})[_0x64f6('0x24')](function(_0x5a5a53){if(_0x5a5a53&&_0x5a5a53[_0x64f6('0x51')]===0x0){return db[_0x64f6('0x28')][_0x64f6('0x49')]({'name':_0x8b7298[_0x64f6('0x31')],'resourceId':_0x8b7298['id'],'type':_0x5a5a53[_0x64f6('0x31')],'sectionId':_0x5a5a53['id']},{})[_0x64f6('0x24')](function(){return _0x967f71;});}else{return _0x967f71;}})[_0x64f6('0x48')](function(_0x549621){logger[_0x64f6('0x2a')](_0x64f6('0x52'),_0x549621);throw _0x549621;});}return _0x967f71;})[_0x64f6('0x24')](respondWithResult(_0xa0126e,0xc9))[_0x64f6('0x48')](handleError(_0xa0126e,null));};exports[_0x64f6('0x23')]=function(_0x47aa3e,_0x469f23){if(_0x47aa3e['body']['id']){delete _0x47aa3e[_0x64f6('0x4a')]['id'];}return db[_0x64f6('0x40')][_0x64f6('0x4f')]({'where':{'id':_0x47aa3e[_0x64f6('0x44')]['id']}})[_0x64f6('0x24')](handleEntityNotFound(_0x469f23,null))[_0x64f6('0x24')](saveUpdates(_0x47aa3e[_0x64f6('0x4a')],null))[_0x64f6('0x24')](respondWithResult(_0x469f23,null))[_0x64f6('0x48')](handleError(_0x469f23,null));};exports[_0x64f6('0x25')]=function(_0x55f720,_0x6624ce){return db[_0x64f6('0x40')][_0x64f6('0x4f')]({'where':{'id':_0x55f720[_0x64f6('0x44')]['id']}})[_0x64f6('0x24')](handleEntityNotFound(_0x6624ce,null))[_0x64f6('0x24')](removeEntity(_0x6624ce,null))[_0x64f6('0x48')](handleError(_0x6624ce,null));};exports[_0x64f6('0x53')]=function(_0x493b47,_0x15ef12,_0x135ad4){if(_0x493b47[_0x64f6('0x4a')]['id']){delete _0x493b47[_0x64f6('0x4a')]['id'];}return db[_0x64f6('0x40')][_0x64f6('0x4f')]({'where':{'id':_0x493b47[_0x64f6('0x44')]['id']}})[_0x64f6('0x24')](handleEntityNotFound(_0x15ef12,null))[_0x64f6('0x24')](function(_0x2fe582){if(_0x2fe582){_0x493b47[_0x64f6('0x4a')][_0x64f6('0x54')]=_0x2fe582['id'];return db['Interval'][_0x64f6('0x49')](_0x493b47[_0x64f6('0x4a')]);}})[_0x64f6('0x24')](respondWithResult(_0x15ef12,null))['catch'](handleError(_0x15ef12,null));};exports[_0x64f6('0x55')]=function(_0x351802,_0x22f946,_0x76e5a6){var _0x4ecf1f={};var _0x3bd22b={};var _0x5d172d;var _0x39e742;return db[_0x64f6('0x40')]['findOne']({'where':{'id':_0x351802['params']['id']}})[_0x64f6('0x24')](handleEntityNotFound(_0x22f946,null))['then'](function(_0x54c0ec){if(_0x54c0ec){_0x5d172d=_0x54c0ec;_0x3bd22b[_0x64f6('0x30')]=_['keys'](db[_0x64f6('0x40')]['rawAttributes']);_0x3bd22b[_0x64f6('0x32')]=_[_0x64f6('0x45')](_0x351802[_0x64f6('0x32')]);_0x3bd22b[_0x64f6('0x33')]=_[_0x64f6('0x35')](_0x3bd22b['model'],_0x3bd22b[_0x64f6('0x32')]);_0x4ecf1f[_0x64f6('0x34')]=_[_0x64f6('0x35')](_0x3bd22b[_0x64f6('0x30')],qs[_0x64f6('0x36')](_0x351802[_0x64f6('0x32')][_0x64f6('0x36')]));_0x4ecf1f['attributes']=_0x4ecf1f[_0x64f6('0x34')][_0x64f6('0x37')]?_0x4ecf1f[_0x64f6('0x34')]:_0x3bd22b[_0x64f6('0x30')];_0x4ecf1f['order']=qs[_0x64f6('0x3a')](_0x351802[_0x64f6('0x32')][_0x64f6('0x3a')]);_0x4ecf1f['where']=qs[_0x64f6('0x33')](_['pick'](_0x351802[_0x64f6('0x32')],_0x3bd22b[_0x64f6('0x33')]));if(_0x351802[_0x64f6('0x32')][_0x64f6('0x3d')]){_0x4ecf1f['where']=_[_0x64f6('0x3e')](_0x4ecf1f[_0x64f6('0x3b')],{'$or':_[_0x64f6('0x56')](_0x4ecf1f[_0x64f6('0x34')],function(_0x98bcb){var _0x3fbf34={};_0x3fbf34[_0x98bcb]={'$like':'%'+_0x351802['query'][_0x64f6('0x3d')]+'%'};return _0x3fbf34;})});}_0x4ecf1f=_['merge']({},_0x4ecf1f,_0x351802[_0x64f6('0x3f')]);return _0x5d172d['getIntervals'](_0x4ecf1f);}})[_0x64f6('0x24')](function(_0x382a93){if(_0x382a93){_0x39e742=_0x382a93['length'];if(!_0x351802[_0x64f6('0x32')][_0x64f6('0x57')](_0x64f6('0x38'))){_0x4ecf1f['limit']=qs[_0x64f6('0x1e')](_0x351802[_0x64f6('0x32')][_0x64f6('0x1e')]);_0x4ecf1f[_0x64f6('0x1d')]=qs[_0x64f6('0x1d')](_0x351802[_0x64f6('0x32')][_0x64f6('0x1d')]);}return _0x5d172d[_0x64f6('0x55')](_0x4ecf1f);}})['then'](function(_0x2d0bf9){if(_0x2d0bf9){return _0x2d0bf9?{'count':_0x39e742,'rows':_0x2d0bf9}:null;}})['then'](respondWithResult(_0x22f946,null))[_0x64f6('0x48')](handleError(_0x22f946,null));};exports[_0x64f6('0x58')]=function(_0x27fe94,_0x4c6113,_0x561de3){return db['Interval'][_0x64f6('0x59')]({'where':{'id':_0x27fe94['params']['id']}})[_0x64f6('0x24')](handleEntityNotFound(_0x4c6113,null))[_0x64f6('0x24')](function(_0x56fb40){if(_0x56fb40){return db[_0x64f6('0x5a')][_0x64f6('0x5b')](function(_0x50a9c8){return db[_0x64f6('0x40')][_0x64f6('0x25')]({'where':{'IntervalId':_0x27fe94[_0x64f6('0x44')]['id']},'transaction':_0x50a9c8})[_0x64f6('0x24')](function(_0xe41c96){var _0x3c26b5=_['map'](_0x27fe94[_0x64f6('0x4a')],function(_0x1659d5){delete _0x1659d5['id'];_0x1659d5[_0x64f6('0x54')]=_0x27fe94[_0x64f6('0x44')]['id'];return _0x1659d5;});return db['Interval'][_0x64f6('0x5c')](_0x3c26b5,{'transaction':_0x50a9c8});});})[_0x64f6('0x24')](function(){return db[_0x64f6('0x40')][_0x64f6('0x41')]({'where':{'IntervalId':_0x27fe94['params']['id']}});});}})[_0x64f6('0x24')](respondWithResult(_0x4c6113,null))[_0x64f6('0x48')](handleError(_0x4c6113,null));};