05ca29db3ad73f023b218fb45319cec1bc961151
[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 _0xa24a=['zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','get','Scheduler','UserProfileResource','destroy','end','sendStatus','error','name','send','index','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','nolimit','where','filter','merge','options','Schedule','includeAll','catch','show','params','length','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','../../config/schedule','find','eml-format'];(function(_0xb68772,_0x5253ac){var _0x4189bb=function(_0x1b0cf3){while(--_0x1b0cf3){_0xb68772['push'](_0xb68772['shift']());}};_0x4189bb(++_0x5253ac);}(_0xa24a,0x1df));var _0xaa24=function(_0x2bf12a,_0x1df75f){_0x2bf12a=_0x2bf12a-0x0;var _0x54296e=_0xa24a[_0x2bf12a];return _0x54296e;};'use strict';var emlformat=require(_0xaa24('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xaa24('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xaa24('0x2'));var moment=require(_0xaa24('0x3'));var BPromise=require(_0xaa24('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xaa24('0x5'));var sox=require(_0xaa24('0x6'));var csv=require(_0xaa24('0x7'));var ejs=require(_0xaa24('0x8'));var fs=require('fs');var fs_extra=require(_0xaa24('0x9'));var _=require(_0xaa24('0xa'));var squel=require(_0xaa24('0xb'));var crypto=require(_0xaa24('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xaa24('0x7'));var querystring=require(_0xaa24('0xd'));var Papa=require(_0xaa24('0xe'));var Redis=require(_0xaa24('0xf'));var authService=require(_0xaa24('0x10'));var qs=require(_0xaa24('0x11'));var as=require(_0xaa24('0x12'));var hardwareService=require(_0xaa24('0x13'));var logger=require('../../config/logger')(_0xaa24('0x14'));var utils=require(_0xaa24('0x15'));var config=require(_0xaa24('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xaa24('0x17'))['db'];function respondWithStatusCode(_0x314833,_0x50206d){_0x50206d=_0x50206d||0xcc;return function(_0xe01d19){if(_0xe01d19){return _0x314833['sendStatus'](_0x50206d);}return _0x314833['status'](_0x50206d)['end']();};}function respondWithResult(_0x16f9f1,_0x52f30e){_0x52f30e=_0x52f30e||0xc8;return function(_0x457340){if(_0x457340){return _0x16f9f1[_0xaa24('0x18')](_0x52f30e)[_0xaa24('0x19')](_0x457340);}};}function respondWithFilteredResult(_0x382b2f,_0xe471a4){return function(_0xf844f9){if(_0xf844f9){var _0x1710a0=typeof _0xe471a4[_0xaa24('0x1a')]===_0xaa24('0x1b')&&typeof _0xe471a4[_0xaa24('0x1c')]===_0xaa24('0x1b');var _0x38ad92=_0xf844f9['count'];var _0x50575a=_0x1710a0?0x0:_0xe471a4[_0xaa24('0x1a')];var _0x3bbdb5=_0x1710a0?_0xf844f9[_0xaa24('0x1d')]:_0xe471a4['offset']+_0xe471a4['limit'];var _0x107c1f;if(_0x3bbdb5>=_0x38ad92){_0x3bbdb5=_0x38ad92;_0x107c1f=0xc8;}else{_0x107c1f=0xce;}_0x382b2f[_0xaa24('0x18')](_0x107c1f);return _0x382b2f[_0xaa24('0x1e')](_0xaa24('0x1f'),_0x50575a+'-'+_0x3bbdb5+'/'+_0x38ad92)['json'](_0xf844f9);}return null;};}function patchUpdates(_0x28ec6c){return function(_0x1dbd76){try{jsonpatch[_0xaa24('0x20')](_0x1dbd76,_0x28ec6c,!![]);}catch(_0x32ccd9){return BPromise[_0xaa24('0x21')](_0x32ccd9);}return _0x1dbd76['save']();};}function saveUpdates(_0x12d4ee,_0x4b7693){return function(_0xeb612e){if(_0xeb612e){return _0xeb612e[_0xaa24('0x22')](_0x12d4ee)[_0xaa24('0x23')](function(_0x47b476){return _0x47b476;});}return null;};}function removeEntity(_0x2611e9,_0x8c2a19){return function(_0x246b09){if(_0x246b09){return _0x246b09['destroy']()[_0xaa24('0x23')](function(){var _0x3f0ca4=_0x246b09[_0xaa24('0x24')]({'plain':!![]});var _0x38a6de=_0xaa24('0x25');return db[_0xaa24('0x26')][_0xaa24('0x27')]({'where':{'type':_0x38a6de,'resourceId':_0x3f0ca4['id']}})[_0xaa24('0x23')](function(){return _0x246b09;});})[_0xaa24('0x23')](function(){_0x2611e9[_0xaa24('0x18')](0xcc)[_0xaa24('0x28')]();});}};}function handleEntityNotFound(_0x29d26b,_0x5cd7e6){return function(_0x7fc014){if(!_0x7fc014){_0x29d26b[_0xaa24('0x29')](0x194);}return _0x7fc014;};}function handleError(_0x1e77a9,_0x2ba534){_0x2ba534=_0x2ba534||0x1f4;return function(_0x2e4af2){logger[_0xaa24('0x2a')](_0x2e4af2['stack']);if(_0x2e4af2[_0xaa24('0x2b')]){delete _0x2e4af2[_0xaa24('0x2b')];}_0x1e77a9[_0xaa24('0x18')](_0x2ba534)[_0xaa24('0x2c')](_0x2e4af2);};}exports[_0xaa24('0x2d')]=function(_0x51c88a,_0x34fe46){var _0x1815af={},_0x230033={},_0x5e19c4={'count':0x0,'rows':[]};var _0x92272c=_['map'](db['Schedule'][_0xaa24('0x2e')],function(_0x3c6140){return{'name':_0x3c6140[_0xaa24('0x2f')],'type':_0x3c6140[_0xaa24('0x30')][_0xaa24('0x31')]};});_0x230033[_0xaa24('0x32')]=_[_0xaa24('0x33')](_0x92272c,'name');_0x230033['query']=_[_0xaa24('0x34')](_0x51c88a[_0xaa24('0x35')]);_0x230033[_0xaa24('0x36')]=_[_0xaa24('0x37')](_0x230033[_0xaa24('0x32')],_0x230033[_0xaa24('0x35')]);_0x1815af[_0xaa24('0x38')]=_[_0xaa24('0x37')](_0x230033[_0xaa24('0x32')],qs[_0xaa24('0x39')](_0x51c88a[_0xaa24('0x35')][_0xaa24('0x39')]));_0x1815af['attributes']=_0x1815af[_0xaa24('0x38')]['length']?_0x1815af[_0xaa24('0x38')]:_0x230033[_0xaa24('0x32')];if(!_0x51c88a[_0xaa24('0x35')]['hasOwnProperty'](_0xaa24('0x3a'))){_0x1815af[_0xaa24('0x1c')]=qs[_0xaa24('0x1c')](_0x51c88a[_0xaa24('0x35')][_0xaa24('0x1c')]);_0x1815af[_0xaa24('0x1a')]=qs[_0xaa24('0x1a')](_0x51c88a[_0xaa24('0x35')][_0xaa24('0x1a')]);}_0x1815af['order']=qs['sort'](_0x51c88a['query']['sort']);_0x1815af[_0xaa24('0x3b')]=qs[_0xaa24('0x36')](_['pick'](_0x51c88a[_0xaa24('0x35')],_0x230033[_0xaa24('0x36')]),_0x92272c);if(_0x51c88a[_0xaa24('0x35')][_0xaa24('0x3c')]){_0x1815af[_0xaa24('0x3b')]=_[_0xaa24('0x3d')](_0x1815af[_0xaa24('0x3b')],{'$or':_[_0xaa24('0x33')](_0x92272c,function(_0xdecd57){if(_0xdecd57[_0xaa24('0x30')]!=='VIRTUAL'){var _0x4af8ba={};_0x4af8ba[_0xdecd57[_0xaa24('0x2b')]]={'$like':'%'+_0x51c88a[_0xaa24('0x35')][_0xaa24('0x3c')]+'%'};return _0x4af8ba;}})});}_0x1815af=_[_0xaa24('0x3d')]({},_0x1815af,_0x51c88a[_0xaa24('0x3e')]);var _0x267e91={'where':_0x1815af[_0xaa24('0x3b')]};return db[_0xaa24('0x3f')]['count'](_0x267e91)[_0xaa24('0x23')](function(_0x296aea){_0x5e19c4[_0xaa24('0x1d')]=_0x296aea;if(_0x51c88a[_0xaa24('0x35')][_0xaa24('0x40')]){_0x1815af['include']=[{'all':!![]}];}return db[_0xaa24('0x3f')]['findAll'](_0x1815af);})['then'](function(_0xb39a4d){_0x5e19c4['rows']=_0xb39a4d;return _0x5e19c4;})[_0xaa24('0x23')](respondWithFilteredResult(_0x34fe46,_0x1815af))[_0xaa24('0x41')](handleError(_0x34fe46,null));};exports[_0xaa24('0x42')]=function(_0x5efb45,_0x182881){var _0x3c5ad1={'raw':![],'where':{'id':_0x5efb45[_0xaa24('0x43')]['id']}},_0x401219={};_0x401219[_0xaa24('0x32')]=_[_0xaa24('0x34')](db[_0xaa24('0x3f')][_0xaa24('0x2e')]);_0x401219[_0xaa24('0x35')]=_[_0xaa24('0x34')](_0x5efb45[_0xaa24('0x35')]);_0x401219[_0xaa24('0x36')]=_[_0xaa24('0x37')](_0x401219[_0xaa24('0x32')],_0x401219[_0xaa24('0x35')]);_0x3c5ad1[_0xaa24('0x38')]=_[_0xaa24('0x37')](_0x401219[_0xaa24('0x32')],qs[_0xaa24('0x39')](_0x5efb45[_0xaa24('0x35')][_0xaa24('0x39')]));_0x3c5ad1[_0xaa24('0x38')]=_0x3c5ad1['attributes'][_0xaa24('0x44')]?_0x3c5ad1[_0xaa24('0x38')]:_0x401219[_0xaa24('0x32')];if(_0x5efb45['query'][_0xaa24('0x40')]){_0x3c5ad1[_0xaa24('0x45')]=[{'all':!![]}];}_0x3c5ad1=_[_0xaa24('0x3d')]({},_0x3c5ad1,_0x5efb45['options']);return db['Schedule']['find'](_0x3c5ad1)['then'](handleEntityNotFound(_0x182881,null))['then'](respondWithResult(_0x182881,null))[_0xaa24('0x41')](handleError(_0x182881,null));};exports['create']=function(_0x525182,_0x556183){return db['Schedule'][_0xaa24('0x46')](_0x525182[_0xaa24('0x47')],{})[_0xaa24('0x23')](function(_0x580b8e){var _0x4b857d=_0x525182[_0xaa24('0x48')][_0xaa24('0x24')]({'plain':!![]});if(!_0x4b857d)throw new Error(_0xaa24('0x49'));if(_0x4b857d['role']===_0xaa24('0x48')){var _0x2b2aad=_0x580b8e['get']({'plain':!![]});var _0x21359e=_0xaa24('0x25');return db['UserProfileSection']['find']({'where':{'name':_0x21359e,'userProfileId':_0x4b857d[_0xaa24('0x4a')]},'raw':!![]})[_0xaa24('0x23')](function(_0xeef4c8){if(_0xeef4c8&&_0xeef4c8[_0xaa24('0x4b')]===0x0){return db['UserProfileResource']['create']({'name':_0x2b2aad[_0xaa24('0x2b')],'resourceId':_0x2b2aad['id'],'type':_0xeef4c8[_0xaa24('0x2b')],'sectionId':_0xeef4c8['id']},{})[_0xaa24('0x23')](function(){return _0x580b8e;});}else{return _0x580b8e;}})[_0xaa24('0x41')](function(_0x47f777){logger[_0xaa24('0x2a')](_0xaa24('0x4c'),_0x47f777);throw _0x47f777;});}return _0x580b8e;})['then'](respondWithResult(_0x556183,0xc9))[_0xaa24('0x41')](handleError(_0x556183,null));};exports[_0xaa24('0x22')]=function(_0x3dc7af,_0x6557f0){if(_0x3dc7af[_0xaa24('0x47')]['id']){delete _0x3dc7af['body']['id'];}return db[_0xaa24('0x3f')]['find']({'where':{'id':_0x3dc7af[_0xaa24('0x43')]['id']}})[_0xaa24('0x23')](handleEntityNotFound(_0x6557f0,null))['then'](saveUpdates(_0x3dc7af[_0xaa24('0x47')],null))[_0xaa24('0x23')](respondWithResult(_0x6557f0,null))[_0xaa24('0x41')](handleError(_0x6557f0,null));};exports[_0xaa24('0x27')]=function(_0x8bbb6d,_0x2f92fa){return db[_0xaa24('0x3f')]['find']({'where':{'id':_0x8bbb6d[_0xaa24('0x43')]['id']}})['then'](handleEntityNotFound(_0x2f92fa,null))[_0xaa24('0x23')](removeEntity(_0x2f92fa,null))[_0xaa24('0x41')](handleError(_0x2f92fa,null));};exports[_0xaa24('0x4d')]=function(_0x11d683,_0x17e1ac,_0x381df9){var _0x57bf7b=require(_0xaa24('0x4e'));return db[_0xaa24('0x3f')][_0xaa24('0x4f')]({'where':{'id':_0x11d683[_0xaa24('0x43')]['id']},'raw':!![]})[_0xaa24('0x23')](handleEntityNotFound(_0x17e1ac,null))[_0xaa24('0x23')](function(){_0x57bf7b['run'](_0x11d683[_0xaa24('0x43')]['id']);})[_0xaa24('0x23')](respondWithStatusCode(_0x17e1ac,null))[_0xaa24('0x41')](handleError(_0x17e1ac,null));};