diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-07-29 02:59:07 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-07-29 02:59:07 +0900 |
| commit | d1c8aa42aec32c8b042ae32d249df9c3c969453d (patch) | |
| tree | 2f248715213d12d6649f32b5ddcbb0d9a0281ed8 /backend/main.go | |
| parent | 22ddf340f0b0c8d0cd04c34d9fa1481a1fbf422f (diff) | |
| parent | 161d82bee9f9e65680516a9cfd392e0cf297eadf (diff) | |
| download | iosdc-japan-2024-albatross-d1c8aa42aec32c8b042ae32d249df9c3c969453d.tar.gz iosdc-japan-2024-albatross-d1c8aa42aec32c8b042ae32d249df9c3c969453d.tar.zst iosdc-japan-2024-albatross-d1c8aa42aec32c8b042ae32d249df9c3c969453d.zip | |
Merge branch 'game-playing'
Diffstat (limited to 'backend/main.go')
| -rw-r--r-- | backend/main.go | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/backend/main.go b/backend/main.go index 379fe8d..91caa73 100644 --- a/backend/main.go +++ b/backend/main.go @@ -6,7 +6,7 @@ import ( "log" "net/http" - "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgxpool" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" oapimiddleware "github.com/oapi-codegen/echo-middleware" @@ -16,6 +16,19 @@ import ( "github.com/nsfisis/iosdc-2024-albatross/backend/game" ) +func connectDB(ctx context.Context, dsn string) (*pgxpool.Pool, error) { + pool, err := pgxpool.New(ctx, dsn) + if err != nil { + return nil, err + } + + if err := pool.Ping(ctx); err != nil { + return nil, err + } + + return pool, nil +} + func main() { var err error config, err := NewConfigFromEnv() @@ -30,13 +43,14 @@ func main() { ctx := context.Background() - conn, err := pgx.Connect(ctx, fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", config.dbHost, config.dbPort, config.dbUser, config.dbPassword, config.dbName)) + dbDSN := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", config.dbHost, config.dbPort, config.dbUser, config.dbPassword, config.dbName) + connPool, err := connectDB(ctx, dbDSN) if err != nil { log.Fatalf("Error connecting to db %v", err) } - defer conn.Close(ctx) + defer connPool.Close() - queries := db.New(conn) + queries := db.New(connPool) e := echo.New() @@ -50,20 +64,22 @@ func main() { api.NewJWTMiddleware(), })) - gameHubs := game.NewGameHubs() - err = gameHubs.RestoreFromDB(ctx, queries) + gameHubs := game.NewGameHubs(queries) + err = gameHubs.RestoreFromDB(ctx) if err != nil { log.Fatalf("Error restoring game hubs from db %v", err) } defer gameHubs.Close() sockGroup := e.Group("/sock") sockHandler := gameHubs.SockHandler() - sockGroup.GET("/golf/:gameId/watch", func(c echo.Context) error { - return sockHandler.HandleSockGolfWatch(c) - }) 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) + }) + + gameHubs.Run() if err := e.Start(":80"); err != http.ErrServerClosed { log.Fatal(err) |
