diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-03-08 10:51:41 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-03-08 10:51:41 +0900 |
| commit | a7ce31249948e4f0c1950de93f3c4f7cdda51cf4 (patch) | |
| tree | c4c740f0cccd15f825596f7a115f3b8f8eb8ffa7 /backend/main.go | |
| parent | 7f4d16dca85263dcbc7b3bb29f5fc50f4371739d (diff) | |
| parent | c06d46eae30c9468535fb6af5e9b822acadbbdb6 (diff) | |
| download | phperkaigi-2025-albatross-a7ce31249948e4f0c1950de93f3c4f7cdda51cf4.tar.gz phperkaigi-2025-albatross-a7ce31249948e4f0c1950de93f3c4f7cdda51cf4.tar.zst phperkaigi-2025-albatross-a7ce31249948e4f0c1950de93f3c4f7cdda51cf4.zip | |
Merge branch 'phperkaigi-2025'
Diffstat (limited to 'backend/main.go')
| -rw-r--r-- | backend/main.go | 56 |
1 files changed, 20 insertions, 36 deletions
diff --git a/backend/main.go b/backend/main.go index 7ca66ac..3df5d83 100644 --- a/backend/main.go +++ b/backend/main.go @@ -11,11 +11,11 @@ import ( "github.com/labstack/echo/v4/middleware" oapimiddleware "github.com/oapi-codegen/echo-middleware" - "github.com/nsfisis/iosdc-japan-2024-albatross/backend/admin" - "github.com/nsfisis/iosdc-japan-2024-albatross/backend/api" - "github.com/nsfisis/iosdc-japan-2024-albatross/backend/db" - "github.com/nsfisis/iosdc-japan-2024-albatross/backend/game" - "github.com/nsfisis/iosdc-japan-2024-albatross/backend/taskqueue" + "github.com/nsfisis/phperkaigi-2025-albatross/backend/admin" + "github.com/nsfisis/phperkaigi-2025-albatross/backend/api" + "github.com/nsfisis/phperkaigi-2025-albatross/backend/db" + "github.com/nsfisis/phperkaigi-2025-albatross/backend/game" + "github.com/nsfisis/phperkaigi-2025-albatross/backend/taskqueue" ) func connectDB(ctx context.Context, dsn string) (*pgxpool.Pool, error) { @@ -38,7 +38,7 @@ func main() { log.Fatalf("Error loading env %v", err) } - openAPISpec, err := api.GetSwaggerWithPrefix("/iosdc-japan/2024/code-battle/api") + openAPISpec, err := api.GetSwaggerWithPrefix("/phperkaigi/2025/code-battle/api") if err != nil { log.Fatalf("Error loading OpenAPI spec\n: %s", err) } @@ -61,36 +61,23 @@ func main() { e.Use(middleware.Recover()) taskQueue := taskqueue.NewQueue("task-db:6379") - workerServer := taskqueue.NewWorkerServer("task-db:6379", queries) + workerServer := taskqueue.NewWorkerServer("task-db:6379") - gameHubs := game.NewGameHubs(queries, taskQueue, workerServer.Results()) - err = gameHubs.RestoreFromDB(ctx) - if err != nil { - log.Fatalf("Error restoring game hubs from db %v", err) - } - defer gameHubs.Close() - sockGroup := e.Group("/iosdc-japan/2024/code-battle/sock") - sockHandler := gameHubs.SockHandler() - sockGroup.GET("/golf/:gameID/play", func(c echo.Context) error { - return sockHandler.HandleSockGolfPlay(c) - }) - sockGroup.GET("/golf/:gameID/watch", func(c echo.Context) error { - return sockHandler.HandleSockGolfWatch(c) - }) - - apiGroup := e.Group("/iosdc-japan/2024/code-battle/api") + gameHub := game.NewGameHub(queries, taskQueue, workerServer) + + apiGroup := e.Group("/phperkaigi/2025/code-battle/api") apiGroup.Use(oapimiddleware.OapiRequestValidator(openAPISpec)) - apiHandler := api.NewHandler(queries, gameHubs) + apiHandler := api.NewHandler(queries, gameHub) api.RegisterHandlers(apiGroup, api.NewStrictHandler(apiHandler, nil)) - adminHandler := admin.NewHandler(queries, gameHubs) - adminGroup := e.Group("/iosdc-japan/2024/code-battle/admin") + adminHandler := admin.NewHandler(queries, gameHub) + adminGroup := e.Group("/phperkaigi/2025/code-battle/admin") adminHandler.RegisterHandlers(adminGroup) if config.isLocal { // For local dev: This is never used in production because the reverse // proxy directly handles /files. - filesGroup := e.Group("/iosdc-japan/2024/code-battle/files") + filesGroup := e.Group("/phperkaigi/2025/code-battle/files") filesGroup.Use(middleware.StaticWithConfig(middleware.StaticConfig{ Root: "/", Filesystem: http.Dir("/data/files"), @@ -99,21 +86,18 @@ func main() { // For local dev: This is never used in production because the reverse // proxy sends these paths to the app server. - e.GET("/iosdc-japan/2024/code-battle/*", func(c echo.Context) error { + e.GET("/phperkaigi/2025/code-battle/*", func(c echo.Context) error { return c.Redirect(http.StatusPermanentRedirect, "http://localhost:5173"+c.Request().URL.Path) }) - e.POST("/iosdc-japan/2024/code-battle/*", func(c echo.Context) error { + e.POST("/phperkaigi/2025/code-battle/*", func(c echo.Context) error { return c.Redirect(http.StatusPermanentRedirect, "http://localhost:5173"+c.Request().URL.Path) }) - } - go gameHubs.Run() + // Allow access from dev server. + e.Use(middleware.CORS()) + } - go func() { - if err := workerServer.Run(); err != nil { - log.Fatal(err) - } - }() + go gameHub.Run() if err := e.Start(":80"); err != http.ErrServerClosed { log.Fatal(err) |
