add 'rst' to Login component

ref #18
This commit is contained in:
Philipp Dormann 2021-04-14 17:14:54 +02:00
parent cd1b3aafc7
commit e6d8861340
1 changed files with 40 additions and 23 deletions

View File

@ -1,7 +1,7 @@
<script>
import isURL from "validator/lib/isURL";
import isUUID from "validator/lib/isUUID";
import { apikey, lang, stationinfo, api_endpoint } from "./store.js";
import { apikey, lang, stationinfo, api_endpoint, page } from "./store.js";
import axios from "axios";
import { _, locale } from "svelte-i18n";
let token;
@ -9,9 +9,10 @@
$: error = false;
$: errormessage = "";
$: isTokenValid =
token?.length === 44 &&
token.split(".")[0].length === 7 &&
isUUID(token.split(".")[1]);
token === "rst" ||
(token?.length === 44 &&
token.split(".")[0].length === 7 &&
isUUID(token.split(".")[1]));
$: isEndpointValid = isURL(api_endpoint_input);
</script>
@ -66,22 +67,30 @@
class="flex flex-col pt-3 md:pt-8"
onsubmit="event.preventDefault();"
on:submit={() => {
axios
.request({
method: "GET",
url: $api_endpoint + "api/stations/me",
headers: { Authorization: "Bearer " + token },
})
.then(function (response) {
error = false;
errormessage = "";
apikey.set(token);
stationinfo.set(JSON.stringify(response.data));
})
.catch(function (e) {
error = true;
errormessage = e.response.data.short;
});
if (token === "rst") {
apikey.set("");
api_endpoint.set("");
page.set("");
token = "";
api_endpoint_input = "";
} else {
axios
.request({
method: "GET",
url: $api_endpoint + "api/stations/me",
headers: { Authorization: "Bearer " + token },
})
.then(function (response) {
error = false;
errormessage = "";
apikey.set(token);
stationinfo.set(JSON.stringify(response.data));
})
.catch(function (e) {
error = true;
errormessage = e.response.data.short;
});
}
}}
>
<div class="flex flex-col pt-4">
@ -117,10 +126,18 @@
class="flex flex-col pt-3 md:pt-8"
onsubmit="event.preventDefault();"
on:submit={() => {
if (api_endpoint_input.substr(-1) !== "/") {
api_endpoint_input = api_endpoint_input + "/";
if (api_endpoint_input === "rst") {
apikey.set("");
api_endpoint.set("");
page.set("");
token = "";
api_endpoint_input = "";
} else {
if (api_endpoint_input.substr(-1) !== "/") {
api_endpoint_input = api_endpoint_input + "/";
}
api_endpoint.set(api_endpoint_input);
}
api_endpoint.set(api_endpoint_input);
}}
>
<div class="flex flex-col pt-4">