summary refs log tree commit diff
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-07-18 17:27:25 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-07-18 17:36:14 +1000
commitb208088c0e32dd9eb83c724616e82fb12a63c445 (patch)
tree21e72890c77a7104495ad8aa63419d6618b99807
parentMerge branch 'fix/messageLinkMetas' into slowcord (diff)
downloadserver-b208088c0e32dd9eb83c724616e82fb12a63c445.tar.xz
Display network/api errors on login/register page
-rw-r--r--slowcord/login/package-lock.json4
-rw-r--r--slowcord/login/public/js/handler.js23
-rw-r--r--slowcord/login/public/login.html24
-rw-r--r--slowcord/login/public/register.html28
4 files changed, 37 insertions, 42 deletions
diff --git a/slowcord/login/package-lock.json b/slowcord/login/package-lock.json
index 60f36fa5..05d385a3 100644
--- a/slowcord/login/package-lock.json
+++ b/slowcord/login/package-lock.json
@@ -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"
 			},
diff --git a/slowcord/login/public/js/handler.js b/slowcord/login/public/js/handler.js
new file mode 100644
index 00000000..4ee7cab2
--- /dev/null
+++ b/slowcord/login/public/js/handler.js
@@ -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";
+}
\ No newline at end of file
diff --git a/slowcord/login/public/login.html b/slowcord/login/public/login.html
index ef2d91c1..bbfbf2af 100644
--- a/slowcord/login/public/login.html
+++ b/slowcord/login/public/login.html
@@ -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>
diff --git a/slowcord/login/public/register.html b/slowcord/login/public/register.html
index 5843649c..9e7457a1 100644
--- a/slowcord/login/public/register.html
+++ b/slowcord/login/public/register.html
@@ -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>