534ea2e7edbc133a4ce81631b259cf7e64e8288d
[motion2.git] / server / api / schedule / schedule.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 _0x5923=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','status','undefined','limit','count','offset','Content-Range','json','apply','reject','save','update','then','destroy','get','UserProfileResource','error','name','map','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','merge','VIRTUAL','filter','Schedule','includeAll','include','rows','catch','params','rawAttributes','options','find','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','run','../../config/schedule','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x18d631,_0x4376d2){var _0x50d708=function(_0x3b6ab5){while(--_0x3b6ab5){_0x18d631['push'](_0x18d631['shift']());}};_0x50d708(++_0x4376d2);}(_0x5923,0x1d4));var _0x3592=function(_0xfa9cc,_0x25cbed){_0xfa9cc=_0xfa9cc-0x0;var _0x42e3bb=_0x5923[_0xfa9cc];return _0x42e3bb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3592('0x0'));var zipdir=require(_0x3592('0x1'));var jsonpatch=require(_0x3592('0x2'));var rp=require(_0x3592('0x3'));var moment=require(_0x3592('0x4'));var BPromise=require(_0x3592('0x5'));var Mustache=require('mustache');var util=require(_0x3592('0x6'));var path=require(_0x3592('0x7'));var sox=require(_0x3592('0x8'));var csv=require(_0x3592('0x9'));var ejs=require(_0x3592('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3592('0xb'));var squel=require(_0x3592('0xc'));var crypto=require(_0x3592('0xd'));var jsforce=require(_0x3592('0xe'));var deskjs=require(_0x3592('0xf'));var toCsv=require(_0x3592('0x9'));var querystring=require(_0x3592('0x10'));var Papa=require(_0x3592('0x11'));var Redis=require('ioredis');var authService=require(_0x3592('0x12'));var qs=require(_0x3592('0x13'));var as=require(_0x3592('0x14'));var hardwareService=require(_0x3592('0x15'));var logger=require(_0x3592('0x16'))('api');var utils=require(_0x3592('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3592('0x18'))['db'];function respondWithStatusCode(_0x14b583,_0x303ff1){_0x303ff1=_0x303ff1||0xcc;return function(_0x510e40){if(_0x510e40){return _0x14b583[_0x3592('0x19')](_0x303ff1);}return _0x14b583['status'](_0x303ff1)[_0x3592('0x1a')]();};}function respondWithResult(_0x18bb85,_0x3fad5c){_0x3fad5c=_0x3fad5c||0xc8;return function(_0x2b6cc0){if(_0x2b6cc0){return _0x18bb85[_0x3592('0x1b')](_0x3fad5c)['json'](_0x2b6cc0);}};}function respondWithFilteredResult(_0x4a7a12,_0x58023e){return function(_0x1dc604){if(_0x1dc604){var _0x447ee0=typeof _0x58023e['offset']===_0x3592('0x1c')&&typeof _0x58023e[_0x3592('0x1d')]===_0x3592('0x1c');var _0x2c8ecc=_0x1dc604[_0x3592('0x1e')];var _0x20c56f=_0x447ee0?0x0:_0x58023e[_0x3592('0x1f')];var _0x318d82=_0x447ee0?_0x1dc604[_0x3592('0x1e')]:_0x58023e['offset']+_0x58023e[_0x3592('0x1d')];var _0x54441a;if(_0x318d82>=_0x2c8ecc){_0x318d82=_0x2c8ecc;_0x54441a=0xc8;}else{_0x54441a=0xce;}_0x4a7a12[_0x3592('0x1b')](_0x54441a);return _0x4a7a12['set'](_0x3592('0x20'),_0x20c56f+'-'+_0x318d82+'/'+_0x2c8ecc)[_0x3592('0x21')](_0x1dc604);}return null;};}function patchUpdates(_0x16514a){return function(_0x37a117){try{jsonpatch[_0x3592('0x22')](_0x37a117,_0x16514a,!![]);}catch(_0x3c1d93){return BPromise[_0x3592('0x23')](_0x3c1d93);}return _0x37a117[_0x3592('0x24')]();};}function saveUpdates(_0x5a7a22,_0x229ac4){return function(_0x17e8a0){if(_0x17e8a0){return _0x17e8a0[_0x3592('0x25')](_0x5a7a22)[_0x3592('0x26')](function(_0x417d8d){return _0x417d8d;});}return null;};}function removeEntity(_0x537f98,_0x277191){return function(_0x2b0aba){if(_0x2b0aba){return _0x2b0aba[_0x3592('0x27')]()['then'](function(){var _0x1409ab=_0x2b0aba[_0x3592('0x28')]({'plain':!![]});var _0x2eb689='Scheduler';return db[_0x3592('0x29')][_0x3592('0x27')]({'where':{'type':_0x2eb689,'resourceId':_0x1409ab['id']}})[_0x3592('0x26')](function(){return _0x2b0aba;});})[_0x3592('0x26')](function(){_0x537f98['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xdb328f,_0x315722){return function(_0x1ae632){if(!_0x1ae632){_0xdb328f[_0x3592('0x19')](0x194);}return _0x1ae632;};}function handleError(_0x5b0b7f,_0x24c9d1){_0x24c9d1=_0x24c9d1||0x1f4;return function(_0x1aca39){logger[_0x3592('0x2a')](_0x1aca39['stack']);if(_0x1aca39[_0x3592('0x2b')]){delete _0x1aca39[_0x3592('0x2b')];}_0x5b0b7f[_0x3592('0x1b')](_0x24c9d1)['send'](_0x1aca39);};}exports['index']=function(_0xe25a37,_0x8503b8){var _0x1e7b31={},_0x492d73={},_0x3511b0={'count':0x0,'rows':[]};var _0x25be45=_[_0x3592('0x2c')](db['Schedule']['rawAttributes'],function(_0x3a9505){return{'name':_0x3a9505[_0x3592('0x2d')],'type':_0x3a9505[_0x3592('0x2e')][_0x3592('0x2f')]};});_0x492d73[_0x3592('0x30')]=_[_0x3592('0x2c')](_0x25be45,_0x3592('0x2b'));_0x492d73['query']=_[_0x3592('0x31')](_0xe25a37[_0x3592('0x32')]);_0x492d73['filters']=_[_0x3592('0x33')](_0x492d73['model'],_0x492d73[_0x3592('0x32')]);_0x1e7b31[_0x3592('0x34')]=_[_0x3592('0x33')](_0x492d73[_0x3592('0x30')],qs['fields'](_0xe25a37[_0x3592('0x32')][_0x3592('0x35')]));_0x1e7b31[_0x3592('0x34')]=_0x1e7b31[_0x3592('0x34')][_0x3592('0x36')]?_0x1e7b31[_0x3592('0x34')]:_0x492d73[_0x3592('0x30')];if(!_0xe25a37[_0x3592('0x32')][_0x3592('0x37')]('nolimit')){_0x1e7b31[_0x3592('0x1d')]=qs[_0x3592('0x1d')](_0xe25a37[_0x3592('0x32')][_0x3592('0x1d')]);_0x1e7b31['offset']=qs['offset'](_0xe25a37['query']['offset']);}_0x1e7b31['order']=qs[_0x3592('0x38')](_0xe25a37[_0x3592('0x32')][_0x3592('0x38')]);_0x1e7b31[_0x3592('0x39')]=qs[_0x3592('0x3a')](_[_0x3592('0x3b')](_0xe25a37[_0x3592('0x32')],_0x492d73[_0x3592('0x3a')]),_0x25be45);if(_0xe25a37[_0x3592('0x32')]['filter']){_0x1e7b31[_0x3592('0x39')]=_[_0x3592('0x3c')](_0x1e7b31[_0x3592('0x39')],{'$or':_['map'](_0x25be45,function(_0x43cbf7){if(_0x43cbf7[_0x3592('0x2e')]!==_0x3592('0x3d')){var _0x1feca4={};_0x1feca4[_0x43cbf7['name']]={'$like':'%'+_0xe25a37['query'][_0x3592('0x3e')]+'%'};return _0x1feca4;}})});}_0x1e7b31=_[_0x3592('0x3c')]({},_0x1e7b31,_0xe25a37['options']);var _0x5046c2={'where':_0x1e7b31['where']};return db[_0x3592('0x3f')][_0x3592('0x1e')](_0x5046c2)[_0x3592('0x26')](function(_0x52a067){_0x3511b0['count']=_0x52a067;if(_0xe25a37[_0x3592('0x32')][_0x3592('0x40')]){_0x1e7b31[_0x3592('0x41')]=[{'all':!![]}];}return db[_0x3592('0x3f')]['findAll'](_0x1e7b31);})['then'](function(_0x3b6c68){_0x3511b0[_0x3592('0x42')]=_0x3b6c68;return _0x3511b0;})[_0x3592('0x26')](respondWithFilteredResult(_0x8503b8,_0x1e7b31))[_0x3592('0x43')](handleError(_0x8503b8,null));};exports['show']=function(_0x6802c,_0x2d6612){var _0x337c9a={'raw':![],'where':{'id':_0x6802c[_0x3592('0x44')]['id']}},_0x5c6e8d={};_0x5c6e8d[_0x3592('0x30')]=_[_0x3592('0x31')](db['Schedule'][_0x3592('0x45')]);_0x5c6e8d[_0x3592('0x32')]=_[_0x3592('0x31')](_0x6802c[_0x3592('0x32')]);_0x5c6e8d[_0x3592('0x3a')]=_[_0x3592('0x33')](_0x5c6e8d[_0x3592('0x30')],_0x5c6e8d[_0x3592('0x32')]);_0x337c9a[_0x3592('0x34')]=_[_0x3592('0x33')](_0x5c6e8d[_0x3592('0x30')],qs[_0x3592('0x35')](_0x6802c[_0x3592('0x32')][_0x3592('0x35')]));_0x337c9a['attributes']=_0x337c9a[_0x3592('0x34')]['length']?_0x337c9a[_0x3592('0x34')]:_0x5c6e8d[_0x3592('0x30')];if(_0x6802c[_0x3592('0x32')][_0x3592('0x40')]){_0x337c9a[_0x3592('0x41')]=[{'all':!![]}];}_0x337c9a=_[_0x3592('0x3c')]({},_0x337c9a,_0x6802c[_0x3592('0x46')]);return db[_0x3592('0x3f')][_0x3592('0x47')](_0x337c9a)[_0x3592('0x26')](handleEntityNotFound(_0x2d6612,null))['then'](respondWithResult(_0x2d6612,null))[_0x3592('0x43')](handleError(_0x2d6612,null));};exports['create']=function(_0x3fc608,_0x4156a3){return db[_0x3592('0x3f')]['create'](_0x3fc608['body'],{})[_0x3592('0x26')](function(_0x20f258){var _0x499150=_0x3fc608[_0x3592('0x48')][_0x3592('0x28')]({'plain':!![]});if(!_0x499150)throw new Error(_0x3592('0x49'));if(_0x499150['role']===_0x3592('0x48')){var _0x489855=_0x20f258[_0x3592('0x28')]({'plain':!![]});var _0x5ed08f='Scheduler';return db['UserProfileSection'][_0x3592('0x47')]({'where':{'name':_0x5ed08f,'userProfileId':_0x499150[_0x3592('0x4a')]},'raw':!![]})[_0x3592('0x26')](function(_0x12906b){if(_0x12906b&&_0x12906b[_0x3592('0x4b')]===0x0){return db[_0x3592('0x29')][_0x3592('0x4c')]({'name':_0x489855['name'],'resourceId':_0x489855['id'],'type':_0x12906b[_0x3592('0x2b')],'sectionId':_0x12906b['id']},{})[_0x3592('0x26')](function(){return _0x20f258;});}else{return _0x20f258;}})[_0x3592('0x43')](function(_0x9da73b){logger[_0x3592('0x2a')](_0x3592('0x4d'),_0x9da73b);throw _0x9da73b;});}return _0x20f258;})['then'](respondWithResult(_0x4156a3,0xc9))['catch'](handleError(_0x4156a3,null));};exports['update']=function(_0x4adf46,_0xee1f81){if(_0x4adf46[_0x3592('0x4e')]['id']){delete _0x4adf46[_0x3592('0x4e')]['id'];}return db[_0x3592('0x3f')]['find']({'where':{'id':_0x4adf46['params']['id']}})[_0x3592('0x26')](handleEntityNotFound(_0xee1f81,null))[_0x3592('0x26')](saveUpdates(_0x4adf46[_0x3592('0x4e')],null))[_0x3592('0x26')](respondWithResult(_0xee1f81,null))['catch'](handleError(_0xee1f81,null));};exports[_0x3592('0x27')]=function(_0x3739b6,_0x3d624c){return db[_0x3592('0x3f')][_0x3592('0x47')]({'where':{'id':_0x3739b6['params']['id']}})[_0x3592('0x26')](handleEntityNotFound(_0x3d624c,null))[_0x3592('0x26')](removeEntity(_0x3d624c,null))[_0x3592('0x43')](handleError(_0x3d624c,null));};exports[_0x3592('0x4f')]=function(_0xb3dd64,_0x5f366d,_0x149809){var _0x19208a=require(_0x3592('0x50'));return db[_0x3592('0x3f')][_0x3592('0x47')]({'where':{'id':_0xb3dd64['params']['id']},'raw':!![]})[_0x3592('0x26')](handleEntityNotFound(_0x5f366d,null))[_0x3592('0x26')](function(){_0x19208a[_0x3592('0x4f')](_0xb3dd64[_0x3592('0x44')]['id']);})['then'](respondWithStatusCode(_0x5f366d,null))[_0x3592('0x43')](handleError(_0x5f366d,null));};