Files
a301_server/routes/routes.go
tolelom 3fb182c271
All checks were successful
Server CI/CD / deploy (push) Successful in 37s
feat: 회원가입 API 추가 (POST /api/auth/register)
- Register 서비스 메서드 추가 (중복 아이디 체크, bcrypt 해시, role: user로 생성)
- Register 핸들러 추가 (빈값, 6자 미만 비밀번호 유효성 검사)
- /api/auth/register 라우트 등록 (public)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 15:11:34 +09:00

43 lines
1.1 KiB
Go

package routes
import (
"a301_server/internal/announcement"
"a301_server/internal/auth"
"a301_server/internal/download"
"a301_server/pkg/middleware"
"github.com/gofiber/fiber/v2"
)
func Register(
app *fiber.App,
authH *auth.Handler,
annH *announcement.Handler,
dlH *download.Handler,
) {
api := app.Group("/api")
// Auth
a := api.Group("/auth")
a.Post("/register", authH.Register)
a.Post("/login", authH.Login)
a.Post("/logout", middleware.Auth, authH.Logout)
// Users (admin only)
u := api.Group("/users", middleware.Auth, middleware.AdminOnly)
u.Get("/", authH.GetAllUsers)
u.Patch("/:id/role", authH.UpdateRole)
u.Delete("/:id", authH.DeleteUser)
// Announcements
ann := api.Group("/announcements")
ann.Get("/", annH.GetAll)
ann.Post("/", middleware.Auth, middleware.AdminOnly, annH.Create)
ann.Put("/:id", middleware.Auth, middleware.AdminOnly, annH.Update)
ann.Delete("/:id", middleware.Auth, middleware.AdminOnly, annH.Delete)
// Download
dl := api.Group("/download")
dl.Get("/info", dlH.GetInfo)
dl.Put("/info", middleware.Auth, middleware.AdminOnly, dlH.Upsert)
}