Enha: sqlx instead of pgx
This commit is contained in:
@ -72,6 +72,10 @@ func getStateByCtx(ctx context.Context) (*models.UserState, error) {
|
||||
return us, nil
|
||||
}
|
||||
|
||||
// func dbCreate(fi *models.FullInfo) error{
|
||||
// repo.CreateRoom()
|
||||
// }
|
||||
|
||||
func saveFullInfo(fi *models.FullInfo) error {
|
||||
// INFO: no transactions; so case is possible where first object is updated but the second is not
|
||||
if err := saveState(fi.State.Username, fi.State); err != nil {
|
||||
|
@ -43,6 +43,10 @@ func HandleCreateRoom(w http.ResponseWriter, r *http.Request) {
|
||||
fi.State.RoomID = room.ID
|
||||
fi.Room = room
|
||||
fi.Room.IsPublic = true // hardcode for local test; move to form
|
||||
if err := repo.CreateRoom(r.Context(), room); err != nil {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
if err := saveFullInfo(fi); err != nil {
|
||||
msg := "failed to set current room to session"
|
||||
log.Error(msg, "error", err)
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"gralias/config"
|
||||
"gralias/models"
|
||||
"gralias/pkg/cache"
|
||||
"gralias/repos"
|
||||
"html/template"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
@ -17,6 +18,7 @@ var (
|
||||
cfg *config.Config
|
||||
memcache cache.Cache
|
||||
Notifier *broker.Broker
|
||||
repo repos.AllRepos
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -30,6 +32,7 @@ func init() {
|
||||
cache.MemCache.StartBackupRoutine(15 * time.Second) // Reduced backup interval
|
||||
// bot loader
|
||||
// check the rooms if it has bot_{digits} in them, create bots if have
|
||||
repo = repos.NewRepoProvider("sqlite3://../gralias.db")
|
||||
recoverBots()
|
||||
// if player has a roomID, but no team and role, try to recover
|
||||
recoverPlayers()
|
||||
@ -57,7 +60,11 @@ func HandleHome(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
if fi != nil && fi.Room == nil {
|
||||
fi.List = listRooms(false)
|
||||
rooms, err := repo.ListRooms(r.Context())
|
||||
if err != nil {
|
||||
log.Error("failed to list rooms;", "error", err)
|
||||
}
|
||||
fi.List = rooms
|
||||
}
|
||||
if err := tmpl.ExecuteTemplate(w, "base", fi); err != nil {
|
||||
log.Error("failed to exec templ;", "error", err, "templ", "base")
|
||||
|
0
handlers/sqlite:gralias.db
Normal file
0
handlers/sqlite:gralias.db
Normal file
@ -54,9 +54,9 @@ func StartTurnTimer(roomID string, duration time.Duration) {
|
||||
return
|
||||
}
|
||||
room.Settings.TurnSecondsLeft--
|
||||
if err := saveRoom(room); err != nil {
|
||||
log.Error("failed to save room", "error", err)
|
||||
}
|
||||
// if err := saveRoom(room); err != nil {
|
||||
// log.Error("failed to save room", "error", err)
|
||||
// }
|
||||
notify(models.NotifyRoomUpdatePrefix+room.ID, "")
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user