diff --git a/pkg/server/database.go b/pkg/server/database.go index cd7e294..83cd3b8 100644 --- a/pkg/server/database.go +++ b/pkg/server/database.go @@ -437,6 +437,29 @@ func recordGameResult(g *bgammon.Game, winType int, account1 int, account2 int, return err } +func matchInfo(id int) (timestamp int64, player1 string, player2 string, replay []byte, err error) { + dbLock.Lock() + defer dbLock.Unlock() + + if db == nil { + return 0, "", "", nil, err + } else if id <= 0 { + return 0, "", "", nil, fmt.Errorf("please specify an id") + } + + tx, err := begin() + if err != nil { + return 0, "", "", nil, err + } + defer tx.Commit(context.Background()) + + err = tx.QueryRow(context.Background(), "SELECT started, player1, player2, replay FROM game WHERE id = $1 AND replay != ''", id).Scan(×tamp, &player1, &player2, &replay) + if err != nil { + return 0, "", "", nil, err + } + return timestamp, player1, player2, replay, nil +} + func replayByID(id int) ([]byte, error) { dbLock.Lock() defer dbLock.Unlock() diff --git a/pkg/server/database_disabled.go b/pkg/server/database_disabled.go index c068925..861fcac 100644 --- a/pkg/server/database_disabled.go +++ b/pkg/server/database_disabled.go @@ -43,6 +43,10 @@ func setAccountSetting(id int, name string, value int) error { return nil } +func matchInfo(id int) (timestamp int64, player1 string, player2 string, replay []byte, err error) { + return 0, "", "", nil, nil +} + func replayByID(id int) ([]byte, error) { return nil, nil } diff --git a/pkg/server/server.go b/pkg/server/server.go index 65e315e..5dc3f59 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -161,6 +161,24 @@ func (s *server) handleResetPassword(w http.ResponseWriter, r *http.Request) { w.Write([]byte(`