diff options
| author | Bobby <[email protected]> | 2025-12-15 14:28:13 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-12-15 14:28:13 +0530 |
| commit | e143ba0b4a0fff8448124d86bb94e07742aa0a9b (patch) | |
| tree | 0dce19e2122b60c6a9e1a338fa884ba206be561c /controllers/register.go | |
| parent | 5f6e383d3799d39036842e00ae3149be7fafe188 (diff) | |
| download | imageboard-main.tar.xz imageboard-main.zip | |
Diffstat (limited to 'controllers/register.go')
| -rw-r--r-- | controllers/register.go | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/controllers/register.go b/controllers/register.go deleted file mode 100644 index 6d1383f..0000000 --- a/controllers/register.go +++ /dev/null @@ -1,89 +0,0 @@ -package controllers - -import ( - "imageboard/config" - "imageboard/database" - "imageboard/models" - "imageboard/utils/auth" - "imageboard/utils/email" - "imageboard/utils/shortcuts" - "log" - "strings" - - "github.com/gofiber/fiber/v2" -) - -type RegisterForm struct { - Username string `json:"username" form:"username"` - Email string `json:"email" form:"email"` - Password string `json:"password" form:"password"` - ConfirmPassword string `json:"confirm_password" form:"confirm_password"` -} - -func RegisterPageController(ctx *fiber.Ctx) error { - ctx.Locals("Title", config.PT_REGISTER) - - if auth.IsAuthenticated(ctx) { - return ctx.Redirect(auth.GetRedirectURL(ctx), fiber.StatusSeeOther) - } - - return shortcuts.Render(ctx, config.TEMPLATE_REGISTER, nil) -} - -func RegisterPostController(ctx *fiber.Ctx) error { - ctx.Locals("Title", config.PT_REGISTER) - - if auth.IsAuthenticated(ctx) { - return ctx.Redirect(auth.GetRedirectURL(ctx), fiber.StatusSeeOther) - } - - var form RegisterForm - handleRegisterError := func(errorMessage string, statusCode int) error { - return TemplateErrorController(ctx, TemplateError{ - Template: config.TEMPLATE_REGISTER, - ErrorMessage: errorMessage, - StatusCode: statusCode, - }, fiber.Map{ - "Username": form.Username, - "Email": form.Email, - }) - } - - if err := ctx.BodyParser(&form); err != nil { - return handleRegisterError(config.ERR_INVALID_FORM_DATA, fiber.StatusBadRequest) - } - - if form.Password != form.ConfirmPassword { - return handleRegisterError(config.ERR_PASSWORD_MISMATCH, fiber.StatusBadRequest) - } - - user := &models.User{ - Username: form.Username, - Email: form.Email, - Password: form.Password, - PostsRequireApproval: true, - Level: config.UserLevelMember, - } - - if err := database.CreateUser(user); err != nil { - var statusCode int - if strings.Contains(err.Error(), "username") { - statusCode = fiber.StatusConflict - } else if strings.Contains(err.Error(), "email") { - statusCode = fiber.StatusBadRequest - } else { - statusCode = fiber.StatusInternalServerError - } - - return handleRegisterError(config.ERR_REGISTER_FAILED_TO_CREATE_USER+err.Error(), statusCode) - } - - if err := email.SendVerificationEmail(user); err != nil { - log.Printf("Failed to send verification email: %v", err) - return handleRegisterError(config.ERR_REGISTER_USER_CREATED_EMAIL_FAILED, fiber.StatusInternalServerError) - } - - return shortcuts.Render(ctx, config.TEMPLATE_REGISTER, fiber.Map{ - "Success": config.SUCCESS_USER_REGISTERED, - }) -} |
