Display network/api errors on login/register page

This commit is contained in:
Madeline 2022-07-18 17:27:25 +10:00
parent c58c3fddd1
commit b208088c0e
4 changed files with 37 additions and 42 deletions

View File

@ -40,7 +40,7 @@
"picocolors": "^1.0.0",
"proxy-agent": "^5.0.0",
"reflect-metadata": "^0.1.13",
"typeorm": "^0.3.7",
"typeorm": "^0.2.37",
"typescript": "^4.4.2",
"typescript-json-schema": "^0.50.1"
},
@ -9242,7 +9242,7 @@
"proxy-agent": "^5.0.0",
"reflect-metadata": "^0.1.13",
"ts-node": "^10.2.1",
"typeorm": "^0.3.7",
"typeorm": "^0.2.37",
"typescript": "^4.4.2",
"typescript-json-schema": "^0.50.1"
},

View File

@ -0,0 +1,23 @@
const handleSubmit = async (path, body) => {
const failureMessage = document.getElementById("failure");
var response = await fetch(path, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(body),
});
const json = await response.json();
if (json.token) {
window.localStorage.setItem("token", `"${json.token}"`);
window.location.href = "/app";
return;
}
const error = json.errors ? Object.values(json.errors)[0]._errors[0].message : json.message;
failureMessage.innerHTML = error;
failureMessage.style.display = "block";
}

View File

@ -11,6 +11,7 @@
<link href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" rel="stylesheet">
<link rel="stylesheet" href="./css/index.css">
<script src="js/handler.js"></script>
</head>
<body>
@ -67,25 +68,10 @@
const email = data.get("email");
const password = data.get("password");
const response = await fetch("/api/v9/auth/login", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
login: email,
password: password,
})
});
const json = await response.json();
if (json.token) {
window.localStorage.setItem("token", `"${json.token}"`);
window.location.href = "/app";
return;
}
document.getElementById("failure").style.display = "block";
await handleSubmit("/api/v9/auth/login", {
login: email,
password: password,
})
})
</script>
</body>

View File

@ -11,6 +11,7 @@
<link href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" rel="stylesheet">
<link rel="stylesheet" href="./css/index.css">
<script src="js/handler.js"></script>
</head>
<body>
@ -58,28 +59,13 @@
const password = data.get("password");
const dob = data.get("dob");
const response = await fetch("/api/v9/auth/register", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
consent: true,
email: email,
username: username,
password: password,
date_of_birth: dob,
})
await handleSubmit("/api/v9/auth/register", {
consent: true,
email: email,
username: username,
password: password,
date_of_birth: dob,
});
const json = await response.json();
if (json.token) {
window.localStorage.setItem("token", `"${json.token}"`);
window.location.href = "/app";
return;
}
document.getElementById("failure").style.display = "block";
})
</script>
</body>