Files
go-tracker/internal/storage/server-settings.go
2025-11-12 09:41:52 +03:00

47 lines
962 B
Go

package storage
import (
"context"
"log"
"madsky.ru/go-tracker/internal/database"
"madsky.ru/go-tracker/internal/model/setting"
)
type ServerSettingsRepository interface {
Find(ctx context.Context) ([]*setting.Setting, error)
}
type ServerSettingsStore struct {
client database.Client
}
func (store *ServerSettingsStore) Find(ctx context.Context) ([]*setting.Setting, error) {
query := "select id, name, value from public.server_settings"
rows, err := store.client.Query(ctx, query)
if err != nil {
log.Println("ServerSettingsStore query err", err)
return nil, err
}
res := make([]*setting.Setting, 0)
for rows.Next() {
var r setting.Setting
err := rows.Scan(&r.ID, &r.Name, &r.Value)
if err != nil {
log.Println("ServerSettingsStore scan err", err)
return nil, err
}
res = append(res, &r)
}
if err := rows.Err(); err != nil {
log.Println("ServerSettingsStore rows err", err)
return nil, err
}
return res, nil
}