add 'rst' to Login component #20

Merged
philipp merged 2 commits from feature/18-add-rst-login into dev 2021-04-14 15:22:08 +00:00

View File

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