Adds jobs endpoint protected by masterKey (#2560)

* Adds jobs endpoint protected by masterKey

* Adds connection timeout for 15 minutes in jobs

* Refactors pushStatusHandler into StatusHandler

* Adds reporting of _JobStatus

* Only accept strings as messages

* Adds test for masterKey basic auth

* Adds CloudCodeRouter for cloud_code endpoint of job status, enable Jobs feature on dashboard

* xit racing test
This commit is contained in:
Florent Vilmart
2016-08-30 07:19:21 -04:00
committed by GitHub
parent 4b2a780e03
commit 10ace495d8
12 changed files with 414 additions and 56 deletions

View File

@@ -13,6 +13,7 @@ export const Types = {
const baseStore = function() {
let Validators = {};
let Functions = {};
let Jobs = {};
let Triggers = Object.keys(Types).reduce(function(base, key){
base[key] = {};
return base;
@@ -20,6 +21,7 @@ const baseStore = function() {
return Object.freeze({
Functions,
Jobs,
Validators,
Triggers
});
@@ -34,6 +36,12 @@ export function addFunction(functionName, handler, validationHandler, applicatio
_triggerStore[applicationId].Validators[functionName] = validationHandler;
}
export function addJob(jobName, handler, applicationId) {
applicationId = applicationId || Parse.applicationId;
_triggerStore[applicationId] = _triggerStore[applicationId] || baseStore();
_triggerStore[applicationId].Jobs[jobName] = handler;
}
export function addTrigger(type, className, handler, applicationId) {
applicationId = applicationId || Parse.applicationId;
_triggerStore[applicationId] = _triggerStore[applicationId] || baseStore();
@@ -45,6 +53,11 @@ export function removeFunction(functionName, applicationId) {
delete _triggerStore[applicationId].Functions[functionName]
}
export function removeJob(jobName, applicationId) {
applicationId = applicationId || Parse.applicationId;
delete _triggerStore[applicationId].Jobs[jobName]
}
export function removeTrigger(type, className, applicationId) {
applicationId = applicationId || Parse.applicationId;
delete _triggerStore[applicationId].Triggers[type][className]
@@ -89,6 +102,23 @@ export function getFunction(functionName, applicationId) {
return undefined;
}
export function getJob(jobName, applicationId) {
var manager = _triggerStore[applicationId];
if (manager && manager.Jobs) {
return manager.Jobs[jobName];
};
return undefined;
}
export function getJobs(applicationId) {
var manager = _triggerStore[applicationId];
if (manager && manager.Jobs) {
return manager.Jobs;
};
return undefined;
}
export function getValidator(functionName, applicationId) {
var manager = _triggerStore[applicationId];
if (manager && manager.Validators) {