All checks were successful
Server CI/CD / deploy (push) Successful in 36s
- POST /api/download/upload/game - 게임 zip 업로드 - POST /api/download/upload/launcher - launcher.exe 업로드 - GET /api/download/launcher - launcher.exe 서빙 - Info 모델에 LauncherURL, LauncherSize 필드 추가 - Content-Disposition 헤더로 올바른 파일명 설정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.2 KiB
Go
46 lines
1.2 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.Get("/file", dlH.ServeFile)
|
|
dl.Get("/launcher", dlH.ServeLauncher)
|
|
dl.Post("/upload/game", middleware.Auth, middleware.AdminOnly, dlH.Upload)
|
|
dl.Post("/upload/launcher", middleware.Auth, middleware.AdminOnly, dlH.UploadLauncher)
|
|
}
|