Skip to content
Snippets Groups Projects
Commit ceb3b265 authored by haidar's avatar haidar
Browse files

feat: regist validation

parent b2188c6a
No related merge requests found
......@@ -7,6 +7,43 @@ const register = async function (e) {
const email = document.getElementById("email").value;
const password = document.getElementById("password").value;
const confPW = document.getElementById("confirm-password").value;
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
let isError = false;
if (username===""){
document.getElementById("usernameError").textContent= "Invalid username";
isError=true;
} else {
document.getElementById("usernameError").textContent= "";
}
if (name===""){
document.getElementById("nameError").textContent= "Invalid name";
isError=true;
} else {
document.getElementById("usernameError").textContent= "";
}
if (!emailRegex.test(email)){
document.getElementById("emailError").textContent= "Invalid email";
isError=true;
} else {
document.getElementById("usernameError").textContent= "";
}
if (password===""){
document.getElementById("passwordError").textContent= "Invalid password";
isError=true;
} else {
document.getElementById("usernameError").textContent= "";
}
if (password!==confPW){
document.getElementById("confPassError").textContent= "confirm your password";
isError=true;
} else {
document.getElementById("usernameError").textContent= "";
}
if (isError){
return;
}
const formData = new FormData();
formData.append("username", username);
......@@ -31,6 +68,11 @@ const register = async function (e) {
alert("Registration failed");
}
} else {
const result = await response.json();
if (result["message"]==="Email already taken!"){
console.log(result["message"]);
}
window.alert(result["message"])
console.log("Request failed");
}
} catch (error) {
......
......@@ -20,18 +20,23 @@
<form id="registerForm" class="register-form">
<label for="username" id="usernameLabel" class="register-label">Username:</label>
<input type="text" id="username" name="username" class="register-input" required /><br /><br />
<span id="usernameError" class="error-message"></span><br><br>
<label for="name" id="nameLabel" class="register-label">Name:</label>
<input type="text" id="name" name="name" class="register-input" required /><br /><br />
<span id="nameError" class="error-message"></span><br><br>
<label for="email" id="emailLabel" class="register-label">Email:</label>
<input type="email" id="email" name="email" class="register-input" required /><br /><br />
<span id="emailError" class="error-message"></span><br><br>
<label for="password" id="passwordLabel" class="register-label">Password:</label>
<input type="password" id="password" name="password" class="register-input" required /><br /><br />
<span id="passwordError" class="error-message"></span><br><br>
<label for="confirm-password" id="confirm-passwordLabel" class="register-label">Confirm Password:</label>
<input type="password" id="confirm-password" name="confirm-password" class="register-input" required /><br /><br />
<span id="confPassError" class="error-message"></span><br><br>
<button type="submit" id="registerButton" class="register-button" onclick="register(event)">Register</button>
</form>
......
......@@ -44,6 +44,13 @@ class UserSrv extends BaseSrv
if ($password !== $confirm_password) {
throw new Exception("Password and confirm password do not match");
}
// echo ("<script>console.log(".$username.")</script>");
$u=$this->getByUsername($username);
// echo is_null($u);
if (!is_null($u->get('username'))){
// echo $username;
throw new Exception("Username already taken!");
}
$user = (new UserModel())->set('nama', $nama)->set('username', $username)->set('email', $email)->set('password', password_hash($password, PASSWORD_DEFAULT));
......@@ -123,6 +130,15 @@ class UserSrv extends BaseSrv
return $user;
}
public function getByUsername($username){
$user = new UserModel();
$sqlRes = $this->repository->getByUsername($username);
if ($sqlRes) {
$user->constructFromArray($sqlRes);
}
return $user;
}
public function updateUser($userId, $userData)
{
$existingUser = $this->getUserById($userId);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment