Files
acc-server-manager/local/repository/config.go
2025-05-28 19:55:11 +02:00

29 lines
679 B
Go

package repository
import (
"acc-server-manager/local/model"
"context"
"gorm.io/gorm"
)
type ConfigRepository struct {
*BaseRepository[model.Config, model.ConfigFilter]
}
func NewConfigRepository(db *gorm.DB) *ConfigRepository {
return &ConfigRepository{
BaseRepository: NewBaseRepository[model.Config, model.ConfigFilter](db, model.Config{}),
}
}
// UpdateConfig updates or creates a Config record
func (r *ConfigRepository) UpdateConfig(ctx context.Context, config *model.Config) *model.Config {
if err := r.Update(ctx, config); err != nil {
// If update fails, try to insert
if err := r.Insert(ctx, config); err != nil {
return nil
}
}
return config
}