50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func (s *Store) GetSettings(ctx context.Context) ([]domain.Setting, error) {
|
|
settings, err := s.queries.GetSettings(ctx)
|
|
|
|
if err != nil {
|
|
domain.MongoDBLogger.Error("failed to get all settings", zap.Error(err))
|
|
}
|
|
|
|
var result []domain.Setting = make([]domain.Setting, 0, len(settings))
|
|
for _, setting := range settings {
|
|
result = append(result, domain.Setting{
|
|
Key: setting.Key,
|
|
Value: setting.Value,
|
|
UpdatedAt: setting.UpdatedAt.Time,
|
|
})
|
|
}
|
|
|
|
return result, nil
|
|
}
|
|
|
|
func (s *Store) SaveSetting(ctx context.Context, key, value string) (domain.Setting, error) {
|
|
dbSetting, err := s.queries.SaveSetting(ctx, dbgen.SaveSettingParams{
|
|
Key: key,
|
|
Value: value,
|
|
})
|
|
|
|
if err != nil {
|
|
domain.MongoDBLogger.Error("failed to update setting", zap.String("key", key), zap.String("value", value), zap.Error(err))
|
|
|
|
return domain.Setting{}, err
|
|
}
|
|
|
|
setting := domain.Setting{
|
|
Key: dbSetting.Key,
|
|
Value: dbSetting.Value,
|
|
}
|
|
|
|
return setting, err
|
|
|
|
}
|