Built motion from commit 9d1906d1.|2.5.40
[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 _0x0f1d=['desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','sendStatus','end','json','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','eml-format','zip-dir','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x5033db,_0x1517d8){var _0x531a64=function(_0x2ae3a4){while(--_0x2ae3a4){_0x5033db['push'](_0x5033db['shift']());}};_0x531a64(++_0x1517d8);}(_0x0f1d,0x1f2));var _0xd0f1=function(_0x10cb75,_0x480729){_0x10cb75=_0x10cb75-0x0;var _0x586c0f=_0x0f1d[_0x10cb75];return _0x586c0f;};'use strict';var emlformat=require(_0xd0f1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd0f1('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd0f1('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xd0f1('0x3'));var util=require(_0xd0f1('0x4'));var path=require('path');var sox=require(_0xd0f1('0x5'));var csv=require(_0xd0f1('0x6'));var ejs=require(_0xd0f1('0x7'));var fs=require('fs');var fs_extra=require(_0xd0f1('0x8'));var _=require(_0xd0f1('0x9'));var squel=require(_0xd0f1('0xa'));var crypto=require(_0xd0f1('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xd0f1('0xc'));var toCsv=require(_0xd0f1('0x6'));var querystring=require('querystring');var Papa=require(_0xd0f1('0xd'));var Redis=require('ioredis');var authService=require(_0xd0f1('0xe'));var qs=require(_0xd0f1('0xf'));var as=require(_0xd0f1('0x10'));var hardwareService=require(_0xd0f1('0x11'));var logger=require(_0xd0f1('0x12'))('api');var utils=require(_0xd0f1('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1f231a,_0x4e2d7a){_0x4e2d7a=_0x4e2d7a||0xcc;return function(_0x507c48){if(_0x507c48){return _0x1f231a[_0xd0f1('0x14')](_0x4e2d7a);}return _0x1f231a['status'](_0x4e2d7a)[_0xd0f1('0x15')]();};}function respondWithResult(_0x3dec21,_0x4e9cad){_0x4e9cad=_0x4e9cad||0xc8;return function(_0x4b8ee5){if(_0x4b8ee5){return _0x3dec21['status'](_0x4e9cad)[_0xd0f1('0x16')](_0x4b8ee5);}};}function respondWithFilteredResult(_0x2f9778,_0x5700ab){return function(_0x3f52c7){if(_0x3f52c7){var _0x4bdfd0=typeof _0x5700ab[_0xd0f1('0x17')]===_0xd0f1('0x18')&&typeof _0x5700ab[_0xd0f1('0x19')]===_0xd0f1('0x18');var _0x56a045=_0x3f52c7['count'];var _0x3ff5a4=_0x4bdfd0?0x0:_0x5700ab[_0xd0f1('0x17')];var _0x55ffc1=_0x4bdfd0?_0x3f52c7[_0xd0f1('0x1a')]:_0x5700ab[_0xd0f1('0x17')]+_0x5700ab[_0xd0f1('0x19')];var _0x48bfe2;if(_0x55ffc1>=_0x56a045){_0x55ffc1=_0x56a045;_0x48bfe2=0xc8;}else{_0x48bfe2=0xce;}_0x2f9778[_0xd0f1('0x1b')](_0x48bfe2);return _0x2f9778[_0xd0f1('0x1c')](_0xd0f1('0x1d'),_0x3ff5a4+'-'+_0x55ffc1+'/'+_0x56a045)[_0xd0f1('0x16')](_0x3f52c7);}return null;};}function patchUpdates(_0x27fccb){return function(_0x120b8e){try{jsonpatch[_0xd0f1('0x1e')](_0x120b8e,_0x27fccb,!![]);}catch(_0x2e0203){return BPromise[_0xd0f1('0x1f')](_0x2e0203);}return _0x120b8e[_0xd0f1('0x20')]();};}function saveUpdates(_0x3e194b,_0x1ab66f){return function(_0x5a36b8){if(_0x5a36b8){return _0x5a36b8[_0xd0f1('0x21')](_0x3e194b)[_0xd0f1('0x22')](function(_0x4e95d4){return _0x4e95d4;});}return null;};}function removeEntity(_0x18500a,_0x290ee9){return function(_0x428e6f){if(_0x428e6f){return _0x428e6f[_0xd0f1('0x23')]()[_0xd0f1('0x22')](function(){var _0xec9129=_0x428e6f[_0xd0f1('0x24')]({'plain':!![]});var _0x365fc4=_0xd0f1('0x25');return db[_0xd0f1('0x26')][_0xd0f1('0x23')]({'where':{'type':_0x365fc4,'resourceId':_0xec9129['id']}})[_0xd0f1('0x22')](function(){return _0x428e6f;});})[_0xd0f1('0x22')](function(){_0x18500a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x232242,_0x5eb8f2){return function(_0x371b71){if(!_0x371b71){_0x232242[_0xd0f1('0x14')](0x194);}return _0x371b71;};}function handleError(_0x3e6e9b,_0x312562){_0x312562=_0x312562||0x1f4;return function(_0x375221){logger[_0xd0f1('0x27')](_0x375221[_0xd0f1('0x28')]);if(_0x375221[_0xd0f1('0x29')]){delete _0x375221[_0xd0f1('0x29')];}_0x3e6e9b[_0xd0f1('0x1b')](_0x312562)[_0xd0f1('0x2a')](_0x375221);};}exports[_0xd0f1('0x2b')]=function(_0x460c0c,_0x2a4257){var _0x3c5bda={},_0x4accf9={},_0x11ec3a={'count':0x0,'rows':[]};var _0x2686e8=_[_0xd0f1('0x2c')](db[_0xd0f1('0x2d')][_0xd0f1('0x2e')],function(_0x38162c){return{'name':_0x38162c[_0xd0f1('0x2f')],'type':_0x38162c[_0xd0f1('0x30')][_0xd0f1('0x31')]};});_0x4accf9[_0xd0f1('0x32')]=_['map'](_0x2686e8,_0xd0f1('0x29'));_0x4accf9[_0xd0f1('0x33')]=_[_0xd0f1('0x34')](_0x460c0c[_0xd0f1('0x33')]);_0x4accf9[_0xd0f1('0x35')]=_['intersection'](_0x4accf9[_0xd0f1('0x32')],_0x4accf9[_0xd0f1('0x33')]);_0x3c5bda['attributes']=_[_0xd0f1('0x36')](_0x4accf9[_0xd0f1('0x32')],qs['fields'](_0x460c0c['query'][_0xd0f1('0x37')]));_0x3c5bda[_0xd0f1('0x38')]=_0x3c5bda[_0xd0f1('0x38')][_0xd0f1('0x39')]?_0x3c5bda[_0xd0f1('0x38')]:_0x4accf9[_0xd0f1('0x32')];if(!_0x460c0c['query'][_0xd0f1('0x3a')]('nolimit')){_0x3c5bda[_0xd0f1('0x19')]=qs[_0xd0f1('0x19')](_0x460c0c['query'][_0xd0f1('0x19')]);_0x3c5bda[_0xd0f1('0x17')]=qs[_0xd0f1('0x17')](_0x460c0c[_0xd0f1('0x33')][_0xd0f1('0x17')]);}_0x3c5bda[_0xd0f1('0x3b')]=qs[_0xd0f1('0x3c')](_0x460c0c[_0xd0f1('0x33')]['sort']);_0x3c5bda[_0xd0f1('0x3d')]=qs[_0xd0f1('0x35')](_[_0xd0f1('0x3e')](_0x460c0c[_0xd0f1('0x33')],_0x4accf9['filters']),_0x2686e8);if(_0x460c0c[_0xd0f1('0x33')][_0xd0f1('0x3f')]){_0x3c5bda[_0xd0f1('0x3d')]=_[_0xd0f1('0x40')](_0x3c5bda[_0xd0f1('0x3d')],{'$or':_[_0xd0f1('0x2c')](_0x2686e8,function(_0x44373c){if(_0x44373c[_0xd0f1('0x30')]!==_0xd0f1('0x41')){var _0x37929b={};_0x37929b[_0x44373c[_0xd0f1('0x29')]]={'$like':'%'+_0x460c0c[_0xd0f1('0x33')]['filter']+'%'};return _0x37929b;}})});}_0x3c5bda=_['merge']({},_0x3c5bda,_0x460c0c['options']);var _0x26b7ba={'where':_0x3c5bda['where']};return db[_0xd0f1('0x2d')][_0xd0f1('0x1a')](_0x26b7ba)[_0xd0f1('0x22')](function(_0x554826){_0x11ec3a[_0xd0f1('0x1a')]=_0x554826;if(_0x460c0c[_0xd0f1('0x33')][_0xd0f1('0x42')]){_0x3c5bda[_0xd0f1('0x43')]=[{'all':!![]}];}return db['Schedule'][_0xd0f1('0x44')](_0x3c5bda);})[_0xd0f1('0x22')](function(_0x396536){_0x11ec3a[_0xd0f1('0x45')]=_0x396536;return _0x11ec3a;})['then'](respondWithFilteredResult(_0x2a4257,_0x3c5bda))[_0xd0f1('0x46')](handleError(_0x2a4257,null));};exports[_0xd0f1('0x47')]=function(_0x25a49b,_0x37e106){var _0x37d627={'raw':![],'where':{'id':_0x25a49b[_0xd0f1('0x48')]['id']}},_0x119129={};_0x119129['model']=_['keys'](db[_0xd0f1('0x2d')][_0xd0f1('0x2e')]);_0x119129['query']=_['keys'](_0x25a49b[_0xd0f1('0x33')]);_0x119129[_0xd0f1('0x35')]=_[_0xd0f1('0x36')](_0x119129[_0xd0f1('0x32')],_0x119129[_0xd0f1('0x33')]);_0x37d627[_0xd0f1('0x38')]=_[_0xd0f1('0x36')](_0x119129[_0xd0f1('0x32')],qs['fields'](_0x25a49b[_0xd0f1('0x33')][_0xd0f1('0x37')]));_0x37d627[_0xd0f1('0x38')]=_0x37d627[_0xd0f1('0x38')][_0xd0f1('0x39')]?_0x37d627[_0xd0f1('0x38')]:_0x119129[_0xd0f1('0x32')];if(_0x25a49b[_0xd0f1('0x33')]['includeAll']){_0x37d627[_0xd0f1('0x43')]=[{'all':!![]}];}_0x37d627=_['merge']({},_0x37d627,_0x25a49b[_0xd0f1('0x49')]);return db['Schedule'][_0xd0f1('0x4a')](_0x37d627)[_0xd0f1('0x22')](handleEntityNotFound(_0x37e106,null))['then'](respondWithResult(_0x37e106,null))['catch'](handleError(_0x37e106,null));};exports['create']=function(_0x4c043b,_0x1eaefe){return db['Schedule'][_0xd0f1('0x4b')](_0x4c043b[_0xd0f1('0x4c')],{})[_0xd0f1('0x22')](function(_0x4b7f8e){var _0x237f4a=_0x4c043b[_0xd0f1('0x4d')][_0xd0f1('0x24')]({'plain':!![]});if(!_0x237f4a)throw new Error(_0xd0f1('0x4e'));if(_0x237f4a[_0xd0f1('0x4f')]===_0xd0f1('0x4d')){var _0x517d5f=_0x4b7f8e[_0xd0f1('0x24')]({'plain':!![]});var _0x20256a=_0xd0f1('0x25');return db[_0xd0f1('0x50')][_0xd0f1('0x4a')]({'where':{'name':_0x20256a,'userProfileId':_0x237f4a[_0xd0f1('0x51')]},'raw':!![]})[_0xd0f1('0x22')](function(_0x2a3ade){if(_0x2a3ade&&_0x2a3ade[_0xd0f1('0x52')]===0x0){return db['UserProfileResource'][_0xd0f1('0x4b')]({'name':_0x517d5f[_0xd0f1('0x29')],'resourceId':_0x517d5f['id'],'type':_0x2a3ade[_0xd0f1('0x29')],'sectionId':_0x2a3ade['id']},{})[_0xd0f1('0x22')](function(){return _0x4b7f8e;});}else{return _0x4b7f8e;}})[_0xd0f1('0x46')](function(_0x263b49){logger[_0xd0f1('0x27')](_0xd0f1('0x53'),_0x263b49);throw _0x263b49;});}return _0x4b7f8e;})['then'](respondWithResult(_0x1eaefe,0xc9))[_0xd0f1('0x46')](handleError(_0x1eaefe,null));};exports[_0xd0f1('0x21')]=function(_0x18c40a,_0x2138b5){if(_0x18c40a['body']['id']){delete _0x18c40a[_0xd0f1('0x4c')]['id'];}return db[_0xd0f1('0x2d')]['find']({'where':{'id':_0x18c40a['params']['id']}})['then'](handleEntityNotFound(_0x2138b5,null))[_0xd0f1('0x22')](saveUpdates(_0x18c40a[_0xd0f1('0x4c')],null))[_0xd0f1('0x22')](respondWithResult(_0x2138b5,null))[_0xd0f1('0x46')](handleError(_0x2138b5,null));};exports['destroy']=function(_0x5cbde1,_0x511f0e){return db[_0xd0f1('0x2d')][_0xd0f1('0x4a')]({'where':{'id':_0x5cbde1[_0xd0f1('0x48')]['id']}})[_0xd0f1('0x22')](handleEntityNotFound(_0x511f0e,null))[_0xd0f1('0x22')](removeEntity(_0x511f0e,null))[_0xd0f1('0x46')](handleError(_0x511f0e,null));};exports[_0xd0f1('0x54')]=function(_0x3c5714,_0x17591b,_0x1407e8){var _0x2a35b2=require('../../config/schedule');return db[_0xd0f1('0x2d')]['find']({'where':{'id':_0x3c5714['params']['id']},'raw':!![]})[_0xd0f1('0x22')](handleEntityNotFound(_0x17591b,null))['then'](function(){_0x2a35b2['run'](_0x3c5714[_0xd0f1('0x48')]['id']);})[_0xd0f1('0x22')](respondWithStatusCode(_0x17591b,null))[_0xd0f1('0x46')](handleError(_0x17591b,null));};