This commit is contained in:
2026-10-01 15:26:56 +07:00
parent e1cb254416
commit f9e44f3ae4
+47 -4
View File
@@ -29,12 +29,30 @@ func New(pool *pgxpool.Pool) *Repo {
func (r *Repo) Ensure(ctx context.Context, gameID int, kind string, itemID int) error {
_, err := r.pool.Exec(ctx, `
INSERT INTO game_map_items (game_id, kind, item_id)
VALUES ($1, $2, $3) ON CONFLICT (game_id, kind, item_id) DO NOTHING`, gameID, kind, itemID)
VALUES ($1, $2, $3)
ON CONFLICT (game_id, kind, item_id) DO NOTHING`,
gameID,
kind,
itemID,
)
return err
}
func (r *Repo) List(ctx context.Context, gameID int) ([]Item, error) {
rows, err := r.pool.Query(ctx, `SELECT game_id, kind, item_id, x, y, hidden FROM game_map_items WHERE game_id = $1 ORDER BY kind, item_id`, gameID)
rows, err := r.pool.Query(
ctx,
`SELECT
game_id,
kind,
item_id,
x,
y,
hidden
FROM game_map_items
WHERE game_id = $1
ORDER BY kind, item_id`,
gameID,
)
if err != nil {
return nil, err
}
@@ -51,7 +69,23 @@ func (r *Repo) List(ctx context.Context, gameID int) ([]Item, error) {
}
func (r *Repo) Update(ctx context.Context, item Item) error {
result, err := r.pool.Exec(ctx, `UPDATE game_map_items SET x = $4, y = $5, hidden = $6 WHERE game_id = $1 AND kind = $2 AND item_id = $3`, item.GameID, item.Kind, item.ItemID, item.X, item.Y, item.Hidden)
result, err := r.pool.Exec(
ctx,
`UPDATE game_map_items
SET
x = $4,
y = $5,
hidden = $6
WHERE game_id = $1
AND kind = $2
AND item_id = $3`,
item.GameID,
item.Kind,
item.ItemID,
item.X,
item.Y,
item.Hidden,
)
if err != nil {
return err
}
@@ -62,6 +96,15 @@ func (r *Repo) Update(ctx context.Context, item Item) error {
}
func (r *Repo) Delete(ctx context.Context, item Item) error {
_, err := r.pool.Exec(ctx, `DELETE FROM game_map_items WHERE game_id = $1 AND kind = $2 AND item_id = $3`, item.GameID, item.Kind, item.ItemID)
_, err := r.pool.Exec(
ctx,
`DELETE FROM game_map_items
WHERE game_id = $1
AND kind = $2
AND item_id = $3`,
item.GameID,
item.Kind,
item.ItemID,
)
return err
}