Files
acc-server-manager/local/repository/server.go
2025-06-29 21:59:41 +02:00

40 lines
937 B
Go

package repository
import (
"acc-server-manager/local/model"
"context"
"errors"
"gorm.io/gorm"
)
type ServerRepository struct {
*BaseRepository[model.Server, model.ServerFilter]
}
func NewServerRepository(db *gorm.DB) *ServerRepository {
repo := &ServerRepository{
BaseRepository: NewBaseRepository[model.Server, model.ServerFilter](db, model.Server{}),
}
return repo
}
// GetFirstByServiceName
// Gets first row from Server table.
//
// Args:
// context.Context: Application context
// Returns:
// model.ServerModel: Server object from database.
func (r *ServerRepository) GetFirstByServiceName(ctx context.Context, serviceName string) (*model.Server, error) {
result := new(model.Server)
if err := r.db.WithContext(ctx).Where("service_name = ?", serviceName).First(result).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, err
}
return nil, err
}
return result, nil
}