✨ Account deletion
This commit is contained in:
@ -216,3 +216,34 @@ func doRegisterConfirm(c *fiber.Ctx) error {
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
func requestDeleteAccount(c *fiber.Ctx) error {
|
||||
if err := exts.EnsureAuthenticated(c); err != nil {
|
||||
return err
|
||||
}
|
||||
user := c.Locals("user").(models.Account)
|
||||
|
||||
if err := services.CheckAbleToDeleteAccount(user); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else if err = services.RequestDeleteAccount(user); err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
}
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
func confirmDeleteAccount(c *fiber.Ctx) error {
|
||||
var data struct {
|
||||
Code string `json:"code" validate:"required"`
|
||||
}
|
||||
|
||||
if err := exts.BindAndValidate(c, &data); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := services.ConfirmDeleteAccount(data.Code); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
@ -79,6 +79,9 @@ func MapAPIs(app *fiber.App, baseURL string) {
|
||||
relations.Post("/:relatedId/accept", acceptFriend)
|
||||
relations.Post("/:relatedId/decline", declineFriend)
|
||||
}
|
||||
|
||||
me.Post("/deletion", requestDeleteAccount)
|
||||
me.Post("/deletion/confirm", confirmDeleteAccount)
|
||||
}
|
||||
|
||||
directory := api.Group("/users/:alias").Name("User Directory")
|
||||
|
Reference in New Issue
Block a user