mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 14:54:05 +00:00
feat: added HTTP method option for push monitor
This commit is contained in:
parent
2af754b5e8
commit
f89ed0a3a4
2 changed files with 48 additions and 43 deletions
|
@ -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()) {
|
||||||
|
|
|
@ -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,56 +429,58 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Body -->
|
<template v-if="monitor.type !== 'push'">
|
||||||
<div class="my-3">
|
<!-- Body -->
|
||||||
<label for="body" class="form-label">{{ $t("Body") }}</label>
|
|
||||||
<textarea id="body" v-model="monitor.body" class="form-control" :placeholder="bodyPlaceholder"></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Headers -->
|
|
||||||
<div class="my-3">
|
|
||||||
<label for="headers" class="form-label">{{ $t("Headers") }}</label>
|
|
||||||
<textarea id="headers" v-model="monitor.headers" class="form-control" :placeholder="headersPlaceholder"></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- HTTP Auth -->
|
|
||||||
<h4 class="mt-5 mb-2">{{ $t("Authentication") }}</h4>
|
|
||||||
|
|
||||||
<!-- Method -->
|
|
||||||
<div class="my-3">
|
|
||||||
<label for="method" class="form-label">{{ $t("Method") }}</label>
|
|
||||||
<select id="method" v-model="monitor.authMethod" class="form-select">
|
|
||||||
<option :value="null">
|
|
||||||
{{ $t("None") }}
|
|
||||||
</option>
|
|
||||||
<option value="basic">
|
|
||||||
{{ $t("HTTP Basic Auth") }}
|
|
||||||
</option>
|
|
||||||
<option value="ntlm">
|
|
||||||
NTLM
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<template v-if="monitor.authMethod && monitor.authMethod !== null ">
|
|
||||||
<div class="my-3">
|
<div class="my-3">
|
||||||
<label for="basicauth" class="form-label">{{ $t("Username") }}</label>
|
<label for="body" class="form-label">{{ $t("Body") }}</label>
|
||||||
<input id="basicauth-user" v-model="monitor.basic_auth_user" type="text" class="form-control" :placeholder="$t('Username')">
|
<textarea id="body" v-model="monitor.body" class="form-control" :placeholder="bodyPlaceholder"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Headers -->
|
||||||
<div class="my-3">
|
<div class="my-3">
|
||||||
<label for="basicauth" class="form-label">{{ $t("Password") }}</label>
|
<label for="headers" class="form-label">{{ $t("Headers") }}</label>
|
||||||
<input id="basicauth-pass" v-model="monitor.basic_auth_pass" type="password" autocomplete="new-password" class="form-control" :placeholder="$t('Password')">
|
<textarea id="headers" v-model="monitor.headers" class="form-control" :placeholder="headersPlaceholder"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="monitor.authMethod === 'ntlm' ">
|
|
||||||
|
<!-- HTTP Auth -->
|
||||||
|
<h4 class="mt-5 mb-2">{{ $t("Authentication") }}</h4>
|
||||||
|
|
||||||
|
<!-- Method -->
|
||||||
|
<div class="my-3">
|
||||||
|
<label for="method" class="form-label">{{ $t("Method") }}</label>
|
||||||
|
<select id="method" v-model="monitor.authMethod" class="form-select">
|
||||||
|
<option :value="null">
|
||||||
|
{{ $t("None") }}
|
||||||
|
</option>
|
||||||
|
<option value="basic">
|
||||||
|
{{ $t("HTTP Basic Auth") }}
|
||||||
|
</option>
|
||||||
|
<option value="ntlm">
|
||||||
|
NTLM
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<template v-if="monitor.authMethod && monitor.authMethod !== null ">
|
||||||
<div class="my-3">
|
<div class="my-3">
|
||||||
<label for="basicauth" class="form-label">{{ $t("Domain") }}</label>
|
<label for="basicauth" class="form-label">{{ $t("Username") }}</label>
|
||||||
<input id="basicauth-domain" v-model="monitor.authDomain" type="text" class="form-control" :placeholder="$t('Domain')">
|
<input id="basicauth-user" v-model="monitor.basic_auth_user" type="text" class="form-control" :placeholder="$t('Username')">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="my-3">
|
<div class="my-3">
|
||||||
<label for="basicauth" class="form-label">{{ $t("Workstation") }}</label>
|
<label for="basicauth" class="form-label">{{ $t("Password") }}</label>
|
||||||
<input id="basicauth-workstation" v-model="monitor.authWorkstation" type="text" class="form-control" :placeholder="$t('Workstation')">
|
<input id="basicauth-pass" v-model="monitor.basic_auth_pass" type="password" autocomplete="new-password" class="form-control" :placeholder="$t('Password')">
|
||||||
</div>
|
</div>
|
||||||
|
<template v-if="monitor.authMethod === 'ntlm' ">
|
||||||
|
<div class="my-3">
|
||||||
|
<label for="basicauth" class="form-label">{{ $t("Domain") }}</label>
|
||||||
|
<input id="basicauth-domain" v-model="monitor.authDomain" type="text" class="form-control" :placeholder="$t('Domain')">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="my-3">
|
||||||
|
<label for="basicauth" class="form-label">{{ $t("Workstation") }}</label>
|
||||||
|
<input id="basicauth-workstation" v-model="monitor.authWorkstation" type="text" class="form-control" :placeholder="$t('Workstation')">
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Reference in a new issue