From 306295ba1c04669173667416489f8eeba9594b2e Mon Sep 17 00:00:00 2001 From: bel Date: Sat, 14 Dec 2024 21:37:57 -0700 Subject: [PATCH] games inits itself --- cmd/server/db.go | 21 --------------------- cmd/server/games.go | 24 ++++++++++++++++++++++-- cmd/server/main.go | 6 +++++- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/cmd/server/db.go b/cmd/server/db.go index c8f60fa..35bb4fb 100644 --- a/cmd/server/db.go +++ b/cmd/server/db.go @@ -32,27 +32,6 @@ func NewDB(ctx context.Context, scheme, conn string) (DB, error) { } defer sql.Close() - if _, err := sql.ExecContext(ctx, ` - CREATE TABLE IF NOT EXISTS users ( - uuid TEXT, - name TEXT - ); - CREATE TABLE IF NOT EXISTS games ( - uuid TEXT - ); - CREATE TABLE IF NOT EXISTS players ( - user_uuid TEXT, - game_uuid TEXT - ); - CREATE TABLE IF NOT EXISTS events ( - game_uuid TEXT, - timestamp DATETIME, - payload TEXT - ); - `); err != nil { - return DB{}, err - } - return db, err } diff --git a/cmd/server/games.go b/cmd/server/games.go index 7fc004d..9d8be41 100644 --- a/cmd/server/games.go +++ b/cmd/server/games.go @@ -1,9 +1,29 @@ package main +import "context" + type Games struct { db DB } -func NewGames(db DB) Games { - return Games{db: db} +func NewGames(ctx context.Context, db DB) (Games, error) { + err := db.Exec(ctx, ` + CREATE TABLE IF NOT EXISTS users ( + uuid TEXT, + name TEXT + ); + CREATE TABLE IF NOT EXISTS games ( + uuid TEXT + ); + CREATE TABLE IF NOT EXISTS players ( + user_uuid TEXT, + game_uuid TEXT + ); + CREATE TABLE IF NOT EXISTS events ( + game_uuid TEXT, + timestamp DATETIME, + payload TEXT + ); + `) + return Games{db: db}, err } diff --git a/cmd/server/main.go b/cmd/server/main.go index 7436a85..4318817 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -31,12 +31,16 @@ func run(ctx context.Context) error { if err != nil { return err } + games, err := NewGames(ctx, db) + if err != nil { + return err + } S := &S{ ctx: ctx, limiter: rate.NewLimiter(10, 10), config: config, - games: NewGames(db), + games: games, } s := &http.Server{