diff --git a/repository/service.go b/repository/service.go index c8cac92..1dbf258 100644 --- a/repository/service.go +++ b/repository/service.go @@ -13,6 +13,7 @@ import ( type Service interface { All(ctx context.Context, limit, offset int, publicOnly bool) ([]model.Service, error) + Find(ctx context.Context, serviceID int) (*model.Service, error) } type service struct { @@ -48,3 +49,15 @@ func (s *service) All(ctx context.Context, limit, offset int, publicOnly bool) ( return items, query. Error } + +func (s *service) Find(ctx context.Context, serviceID int) (*model.Service, error) { + item := &model.Service{} + + return item, s.db. + WithContext(ctx). + Preload("Statuses", func(db *gorm.DB) *gorm.DB { + return db.Order("created_at desc") + }). + First(&item, "id", serviceID). + Error +}