Built motion from commit 88aa8522.|2.5.37
[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 _0x34ab=['query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','type','VIRTUAL','options','include','findAll','rows','catch','show','params','length','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','body','../../config/schedule','run','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','get','Scheduler','error','stack','name','send','index','Schedule','rawAttributes','fieldName','key','map'];(function(_0x4af9c4,_0x332c92){var _0x26716d=function(_0xf87467){while(--_0xf87467){_0x4af9c4['push'](_0x4af9c4['shift']());}};_0x26716d(++_0x332c92);}(_0x34ab,0x17e));var _0xb34a=function(_0x36c6eb,_0x4fb127){_0x36c6eb=_0x36c6eb-0x0;var _0x30675b=_0x34ab[_0x36c6eb];return _0x30675b;};'use strict';var emlformat=require(_0xb34a('0x0'));var rimraf=require(_0xb34a('0x1'));var zipdir=require(_0xb34a('0x2'));var jsonpatch=require(_0xb34a('0x3'));var rp=require(_0xb34a('0x4'));var moment=require(_0xb34a('0x5'));var BPromise=require(_0xb34a('0x6'));var Mustache=require(_0xb34a('0x7'));var util=require('util');var path=require(_0xb34a('0x8'));var sox=require(_0xb34a('0x9'));var csv=require(_0xb34a('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb34a('0xb'));var squel=require(_0xb34a('0xc'));var crypto=require(_0xb34a('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xb34a('0xe'));var toCsv=require(_0xb34a('0xa'));var querystring=require(_0xb34a('0xf'));var Papa=require(_0xb34a('0x10'));var Redis=require(_0xb34a('0x11'));var authService=require(_0xb34a('0x12'));var qs=require(_0xb34a('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb34a('0x14'));var logger=require(_0xb34a('0x15'))(_0xb34a('0x16'));var utils=require(_0xb34a('0x17'));var config=require(_0xb34a('0x18'));var licenseUtil=require(_0xb34a('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x33f419,_0x46d62d){_0x46d62d=_0x46d62d||0xcc;return function(_0x37668b){if(_0x37668b){return _0x33f419[_0xb34a('0x1a')](_0x46d62d);}return _0x33f419['status'](_0x46d62d)[_0xb34a('0x1b')]();};}function respondWithResult(_0x50179a,_0x5d5451){_0x5d5451=_0x5d5451||0xc8;return function(_0x17979f){if(_0x17979f){return _0x50179a[_0xb34a('0x1c')](_0x5d5451)[_0xb34a('0x1d')](_0x17979f);}};}function respondWithFilteredResult(_0x3953f7,_0x134f0d){return function(_0x13187d){if(_0x13187d){var _0x141f86=typeof _0x134f0d[_0xb34a('0x1e')]===_0xb34a('0x1f')&&typeof _0x134f0d[_0xb34a('0x20')]==='undefined';var _0x46df1b=_0x13187d['count'];var _0x303800=_0x141f86?0x0:_0x134f0d[_0xb34a('0x1e')];var _0x3bf3b4=_0x141f86?_0x13187d[_0xb34a('0x21')]:_0x134f0d[_0xb34a('0x1e')]+_0x134f0d[_0xb34a('0x20')];var _0x4604fc;if(_0x3bf3b4>=_0x46df1b){_0x3bf3b4=_0x46df1b;_0x4604fc=0xc8;}else{_0x4604fc=0xce;}_0x3953f7[_0xb34a('0x1c')](_0x4604fc);return _0x3953f7[_0xb34a('0x22')](_0xb34a('0x23'),_0x303800+'-'+_0x3bf3b4+'/'+_0x46df1b)[_0xb34a('0x1d')](_0x13187d);}return null;};}function patchUpdates(_0x25cc30){return function(_0x582265){try{jsonpatch[_0xb34a('0x24')](_0x582265,_0x25cc30,!![]);}catch(_0x2233e3){return BPromise['reject'](_0x2233e3);}return _0x582265[_0xb34a('0x25')]();};}function saveUpdates(_0x58df39,_0x1b70e9){return function(_0x10370d){if(_0x10370d){return _0x10370d[_0xb34a('0x26')](_0x58df39)[_0xb34a('0x27')](function(_0x194994){return _0x194994;});}return null;};}function removeEntity(_0x24b2f6,_0x332edb){return function(_0x1f45db){if(_0x1f45db){return _0x1f45db[_0xb34a('0x28')]()[_0xb34a('0x27')](function(){var _0x3f7c28=_0x1f45db[_0xb34a('0x29')]({'plain':!![]});var _0x138fd4=_0xb34a('0x2a');return db['UserProfileResource']['destroy']({'where':{'type':_0x138fd4,'resourceId':_0x3f7c28['id']}})['then'](function(){return _0x1f45db;});})[_0xb34a('0x27')](function(){_0x24b2f6['status'](0xcc)[_0xb34a('0x1b')]();});}};}function handleEntityNotFound(_0x1423bb,_0x330cec){return function(_0x53be07){if(!_0x53be07){_0x1423bb['sendStatus'](0x194);}return _0x53be07;};}function handleError(_0x5eaa0d,_0x5482c3){_0x5482c3=_0x5482c3||0x1f4;return function(_0x53257f){logger[_0xb34a('0x2b')](_0x53257f[_0xb34a('0x2c')]);if(_0x53257f['name']){delete _0x53257f[_0xb34a('0x2d')];}_0x5eaa0d[_0xb34a('0x1c')](_0x5482c3)[_0xb34a('0x2e')](_0x53257f);};}exports[_0xb34a('0x2f')]=function(_0x12b077,_0x40429e){var _0x2bf2f2={},_0xa6be43={},_0x7443b={'count':0x0,'rows':[]};var _0x479a4c=_['map'](db[_0xb34a('0x30')][_0xb34a('0x31')],function(_0xc4eecf){return{'name':_0xc4eecf[_0xb34a('0x32')],'type':_0xc4eecf['type'][_0xb34a('0x33')]};});_0xa6be43['model']=_[_0xb34a('0x34')](_0x479a4c,_0xb34a('0x2d'));_0xa6be43[_0xb34a('0x35')]=_[_0xb34a('0x36')](_0x12b077[_0xb34a('0x35')]);_0xa6be43[_0xb34a('0x37')]=_[_0xb34a('0x38')](_0xa6be43[_0xb34a('0x39')],_0xa6be43[_0xb34a('0x35')]);_0x2bf2f2[_0xb34a('0x3a')]=_[_0xb34a('0x38')](_0xa6be43[_0xb34a('0x39')],qs['fields'](_0x12b077[_0xb34a('0x35')][_0xb34a('0x3b')]));_0x2bf2f2[_0xb34a('0x3a')]=_0x2bf2f2['attributes']['length']?_0x2bf2f2[_0xb34a('0x3a')]:_0xa6be43['model'];if(!_0x12b077[_0xb34a('0x35')][_0xb34a('0x3c')]('nolimit')){_0x2bf2f2['limit']=qs[_0xb34a('0x20')](_0x12b077[_0xb34a('0x35')]['limit']);_0x2bf2f2[_0xb34a('0x1e')]=qs[_0xb34a('0x1e')](_0x12b077[_0xb34a('0x35')]['offset']);}_0x2bf2f2[_0xb34a('0x3d')]=qs[_0xb34a('0x3e')](_0x12b077[_0xb34a('0x35')]['sort']);_0x2bf2f2[_0xb34a('0x3f')]=qs[_0xb34a('0x37')](_['pick'](_0x12b077[_0xb34a('0x35')],_0xa6be43[_0xb34a('0x37')]),_0x479a4c);if(_0x12b077[_0xb34a('0x35')][_0xb34a('0x40')]){_0x2bf2f2[_0xb34a('0x3f')]=_[_0xb34a('0x41')](_0x2bf2f2['where'],{'$or':_[_0xb34a('0x34')](_0x479a4c,function(_0x4e4f33){if(_0x4e4f33[_0xb34a('0x42')]!==_0xb34a('0x43')){var _0x35ccc4={};_0x35ccc4[_0x4e4f33[_0xb34a('0x2d')]]={'$like':'%'+_0x12b077[_0xb34a('0x35')][_0xb34a('0x40')]+'%'};return _0x35ccc4;}})});}_0x2bf2f2=_[_0xb34a('0x41')]({},_0x2bf2f2,_0x12b077[_0xb34a('0x44')]);var _0x1c9f21={'where':_0x2bf2f2['where']};return db[_0xb34a('0x30')]['count'](_0x1c9f21)[_0xb34a('0x27')](function(_0x5ea703){_0x7443b[_0xb34a('0x21')]=_0x5ea703;if(_0x12b077[_0xb34a('0x35')]['includeAll']){_0x2bf2f2[_0xb34a('0x45')]=[{'all':!![]}];}return db[_0xb34a('0x30')][_0xb34a('0x46')](_0x2bf2f2);})[_0xb34a('0x27')](function(_0x14b1a0){_0x7443b[_0xb34a('0x47')]=_0x14b1a0;return _0x7443b;})[_0xb34a('0x27')](respondWithFilteredResult(_0x40429e,_0x2bf2f2))[_0xb34a('0x48')](handleError(_0x40429e,null));};exports[_0xb34a('0x49')]=function(_0x5b72b2,_0x585297){var _0x294df7={'raw':![],'where':{'id':_0x5b72b2[_0xb34a('0x4a')]['id']}},_0x7b9d39={};_0x7b9d39[_0xb34a('0x39')]=_[_0xb34a('0x36')](db[_0xb34a('0x30')]['rawAttributes']);_0x7b9d39[_0xb34a('0x35')]=_[_0xb34a('0x36')](_0x5b72b2[_0xb34a('0x35')]);_0x7b9d39[_0xb34a('0x37')]=_['intersection'](_0x7b9d39[_0xb34a('0x39')],_0x7b9d39['query']);_0x294df7['attributes']=_[_0xb34a('0x38')](_0x7b9d39[_0xb34a('0x39')],qs[_0xb34a('0x3b')](_0x5b72b2[_0xb34a('0x35')]['fields']));_0x294df7[_0xb34a('0x3a')]=_0x294df7[_0xb34a('0x3a')][_0xb34a('0x4b')]?_0x294df7[_0xb34a('0x3a')]:_0x7b9d39[_0xb34a('0x39')];if(_0x5b72b2[_0xb34a('0x35')]['includeAll']){_0x294df7[_0xb34a('0x45')]=[{'all':!![]}];}_0x294df7=_[_0xb34a('0x41')]({},_0x294df7,_0x5b72b2[_0xb34a('0x44')]);return db[_0xb34a('0x30')][_0xb34a('0x4c')](_0x294df7)[_0xb34a('0x27')](handleEntityNotFound(_0x585297,null))['then'](respondWithResult(_0x585297,null))['catch'](handleError(_0x585297,null));};exports[_0xb34a('0x4d')]=function(_0x81dd8c,_0x46af19){return db['Schedule']['create'](_0x81dd8c['body'],{})[_0xb34a('0x27')](function(_0x4169e1){var _0xef8f97=_0x81dd8c[_0xb34a('0x4e')][_0xb34a('0x29')]({'plain':!![]});if(!_0xef8f97)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xef8f97[_0xb34a('0x4f')]===_0xb34a('0x4e')){var _0x15bc1f=_0x4169e1[_0xb34a('0x29')]({'plain':!![]});var _0x835450=_0xb34a('0x2a');return db[_0xb34a('0x50')][_0xb34a('0x4c')]({'where':{'name':_0x835450,'userProfileId':_0xef8f97[_0xb34a('0x51')]},'raw':!![]})[_0xb34a('0x27')](function(_0x43a675){if(_0x43a675&&_0x43a675[_0xb34a('0x52')]===0x0){return db[_0xb34a('0x53')][_0xb34a('0x4d')]({'name':_0x15bc1f[_0xb34a('0x2d')],'resourceId':_0x15bc1f['id'],'type':_0x43a675['name'],'sectionId':_0x43a675['id']},{})[_0xb34a('0x27')](function(){return _0x4169e1;});}else{return _0x4169e1;}})[_0xb34a('0x48')](function(_0x10be90){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x10be90);throw _0x10be90;});}return _0x4169e1;})['then'](respondWithResult(_0x46af19,0xc9))[_0xb34a('0x48')](handleError(_0x46af19,null));};exports[_0xb34a('0x26')]=function(_0x176b2c,_0x1095a3){if(_0x176b2c[_0xb34a('0x54')]['id']){delete _0x176b2c[_0xb34a('0x54')]['id'];}return db[_0xb34a('0x30')][_0xb34a('0x4c')]({'where':{'id':_0x176b2c[_0xb34a('0x4a')]['id']}})[_0xb34a('0x27')](handleEntityNotFound(_0x1095a3,null))[_0xb34a('0x27')](saveUpdates(_0x176b2c['body'],null))[_0xb34a('0x27')](respondWithResult(_0x1095a3,null))[_0xb34a('0x48')](handleError(_0x1095a3,null));};exports[_0xb34a('0x28')]=function(_0x2a6cdb,_0x103885){return db[_0xb34a('0x30')][_0xb34a('0x4c')]({'where':{'id':_0x2a6cdb[_0xb34a('0x4a')]['id']}})[_0xb34a('0x27')](handleEntityNotFound(_0x103885,null))[_0xb34a('0x27')](removeEntity(_0x103885,null))[_0xb34a('0x48')](handleError(_0x103885,null));};exports['run']=function(_0x32a92d,_0x1919e8,_0x2ed7e3){var _0x47bb93=require(_0xb34a('0x55'));return db[_0xb34a('0x30')][_0xb34a('0x4c')]({'where':{'id':_0x32a92d[_0xb34a('0x4a')]['id']},'raw':!![]})[_0xb34a('0x27')](handleEntityNotFound(_0x1919e8,null))['then'](function(){_0x47bb93[_0xb34a('0x56')](_0x32a92d[_0xb34a('0x4a')]['id']);})[_0xb34a('0x27')](respondWithStatusCode(_0x1919e8,null))['catch'](handleError(_0x1919e8,null));};