registering user works

This commit is contained in:
Florian Hoss 2022-03-30 15:11:58 +02:00
parent faf460470e
commit acdee880e4
4 changed files with 48 additions and 32 deletions

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SaveActionSettings">
<option name="actions">
<set>
<option value="activate" />
<option value="activateOnShortcut" />
<option value="organizeImports" />
<option value="reformat" />
</set>
</option>
</component>
</project>

View file

@ -1,6 +1,8 @@
package database
import "gorm.io/gorm"
import (
"gorm.io/gorm"
)
type Database struct {
ORM *gorm.DB
@ -8,7 +10,7 @@ type Database struct {
}
type User struct {
ID int
Username string
Password string
Username string `gorm:"primaryKey"`
Password string
CreatedAt int64 `gorm:"autoCreateTime"`
}

View file

@ -9,37 +9,37 @@
{{template "navbar" .}}
<div class="position-absolute top-50 start-50 translate-middle">
<form action="http://localhost:8080/register" method="POST">
<div class="mb-3">
<label for="username" class="form-label">Username</label>
<input type="text" class="form-control" id="username" aria-describedby="emailHelp">
<div id="emailHelp" class="form-text">The username needs to be unique</div>
</div>
<div class="mb-3">
<label for="password" class="form-label">Password</label>
<input type="password" class="form-control" id="password" aria-describedby="passwordHelp">
<div id="passwordHelp" class="form-text">The password needs to be different from the username</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<div class="mb-3">
<label for="username" class="form-label">Username</label>
<input type="text" class="form-control" id="username" aria-describedby="emailHelp">
<div id="emailHelp" class="form-text">The username needs to be unique</div>
</div>
<div class="mb-3">
<label for="password" class="form-label">Password</label>
<input type="password" class="form-control" id="password" aria-describedby="passwordHelp">
<div id="passwordHelp" class="form-text">The password needs to be different from the username</div>
</div>
<button onclick="registerUser()" class="btn btn-primary">Submit</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>
<script>
let formData = new FormData();
formData.append("username", "Florian");
formData.append("password", "SuperSafe");
function registerUser() {
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
let formData = new FormData();
formData.append("username", username);
formData.append("password", password);
let requestOptions = {
method: 'POST',
body: formData,
redirect: 'follow'
};
fetch("http://localhost:8080/register", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
fetch("/register", {method: 'POST', body: formData, redirect: 'follow'})
.then(response => response.json())
.then(() => {
window.location.href = "/";
}
).catch(error => console.log(error));
}
</script>
</body>
</html>

View file

@ -45,7 +45,8 @@ func (wp *Webpage) defineRoutes() {
user := database.User{Username: username, Password: password}
result := wp.Database.ORM.Create(&user)
if result.Error != nil {
c.JSON(200, gin.H{"message": "cannot create user"})
c.JSON(400, gin.H{"message": result.Error.Error()})
return
}
c.JSON(200, gin.H{"message": "user registered"})
})