diff options
Diffstat (limited to 'database.go')
-rw-r--r-- | database.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/database.go b/database.go new file mode 100644 index 0000000..cf4f4ba --- /dev/null +++ b/database.go @@ -0,0 +1,29 @@ +package main + +import ( + "context" +) + +func query_list[T any](ctx context.Context, query string, args ...any) ([]T, error) { + rows, err := database.Query(ctx, query, args...) + if err != nil { + return nil, err + } + defer rows.Close() + + var result []T + for rows.Next() { + var item T + if err := rows.Scan(&item); err != nil { + return nil, err + } + result = append(result, item) + } + + if err := rows.Err(); err != nil { + return nil, err + } + + return result, nil +} + |