feat: added HTTP method option for push monitor

This commit is contained in:
Stefan Ottosson 2022-08-12 18:43:24 +02:00
parent 2af754b5e8
commit f89ed0a3a4
2 changed files with 48 additions and 43 deletions

View file

@ -31,9 +31,8 @@ router.get("/api/entry-page", async (request, response) => {
response.json(result); response.json(result);
}); });
router.get("/api/push/:pushToken", async (request, response) => { router.all("/api/push/:pushToken", async (request, response) => {
try { try {
let pushToken = request.params.pushToken; let pushToken = request.params.pushToken;
let msg = request.query.msg || "OK"; let msg = request.query.msg || "OK";
let ping = request.query.ping || null; let ping = request.query.ping || null;
@ -48,6 +47,10 @@ router.get("/api/push/:pushToken", async (request, response) => {
throw new Error("Monitor not found or not active."); throw new Error("Monitor not found or not active.");
} }
if (monitor.method !== request.method) {
throw new Error("Monitor HTTP method (" + monitor.method + ") does not match request (" + request.method + ").");
}
const previousHeartbeat = await Monitor.getPreviousHeartbeat(monitor.id); const previousHeartbeat = await Monitor.getPreviousHeartbeat(monitor.id);
if (monitor.isUpsideDown()) { if (monitor.isUpsideDown()) {

View file

@ -398,7 +398,7 @@
</div> </div>
<!-- HTTP Options --> <!-- HTTP Options -->
<template v-if="monitor.type === 'http' || monitor.type === 'keyword' "> <template v-if="monitor.type === 'http' || monitor.type === 'keyword' || monitor.type === 'push'">
<h2 class="mt-5 mb-2">{{ $t("HTTP Options") }}</h2> <h2 class="mt-5 mb-2">{{ $t("HTTP Options") }}</h2>
<!-- Method --> <!-- Method -->
@ -429,6 +429,7 @@
</select> </select>
</div> </div>
<template v-if="monitor.type !== 'push'">
<!-- Body --> <!-- Body -->
<div class="my-3"> <div class="my-3">
<label for="body" class="form-label">{{ $t("Body") }}</label> <label for="body" class="form-label">{{ $t("Body") }}</label>
@ -482,6 +483,7 @@
</template> </template>
</template> </template>
</template> </template>
</template>
</div> </div>
</div> </div>
</div> </div>