New paste Repaste Download
func (w *Web) Register(c *fiber.Ctx) error {
email := c.FormValue("email")
password := c.FormValue("password")
if email == "" || password == "" {
return fiber.NewError(fiber.StatusBadRequest, "Request was missing email or password.")
}
_, err := mail.ParseAddress(email)
if err != nil {
return fiber.NewError(fiber.StatusBadRequest, "Invalid email address.")
}
if len(password) < 6 {
return fiber.NewError(fiber.StatusBadRequest, "Password must be at least 6 characters long.")
}
user, err := w.database.GetUserByEmail(context.TODO(), email)
if user != nil {
return fiber.NewError(fiber.StatusConflict, "This email is already in use. Try logging in or use a different email address.")
}
user = &types.User{
Id:       uuid.New(),
Email:    email,
Password: w.passwordHash(password),
}
err = w.database.AddUser(context.TODO(), user)
if err != nil {
return fiber.NewError(fiber.StatusBadRequest, err.Error())
}
token, err := w.generateToken(user.Id)
if err != nil {
return fiber.NewError(fiber.StatusUnauthorized, err.Error())
}
return c.Status(fiber.StatusCreated).JSON(fiber.Map{
"access_token": token,
"token_type":   "Bearer",
})
}
Filename: None. Size: 1kb. View raw, , hex, or download this file.

This paste expires on 2025-05-25 09:35:28.876415. Pasted through web.