@@ -4,24 +4,40 @@ import (
44 "context"
55 "time"
66
7+ "github.com/ThreeDotsLabs/wild-workouts-go-ddd-example/internal/common/decorator"
78 "github.com/ThreeDotsLabs/wild-workouts-go-ddd-example/internal/common/errors"
89 "github.com/ThreeDotsLabs/wild-workouts-go-ddd-example/internal/trainer/domain/hour"
10+ "github.com/sirupsen/logrus"
911)
1012
11- type MakeHoursUnavailableHandler struct {
13+ type MakeHoursUnavailable struct {
14+ Hours []time.Time
15+ }
16+
17+ type MakeHoursUnavailableHandler decorator.CommandHandler [MakeHoursUnavailable ]
18+
19+ type makeHoursUnavailableHandler struct {
1220 hourRepo hour.Repository
1321}
1422
15- func NewMakeHoursUnavailableHandler (hourRepo hour.Repository ) MakeHoursUnavailableHandler {
23+ func NewMakeHoursUnavailableHandler (
24+ hourRepo hour.Repository ,
25+ logger * logrus.Entry ,
26+ metricsClient decorator.MetricsClient ,
27+ ) MakeHoursUnavailableHandler {
1628 if hourRepo == nil {
1729 panic ("hourRepo is nil" )
1830 }
1931
20- return MakeHoursUnavailableHandler {hourRepo : hourRepo }
32+ return decorator .ApplyCommandDecorators [MakeHoursUnavailable ](
33+ makeHoursUnavailableHandler {hourRepo : hourRepo },
34+ logger ,
35+ metricsClient ,
36+ )
2137}
2238
23- func (c MakeHoursUnavailableHandler ) Handle (ctx context.Context , hours []time. Time ) error {
24- for _ , hourToUpdate := range hours {
39+ func (c makeHoursUnavailableHandler ) Handle (ctx context.Context , cmd MakeHoursUnavailable ) error {
40+ for _ , hourToUpdate := range cmd . Hours {
2541 if err := c .hourRepo .UpdateHour (ctx , hourToUpdate , func (h * hour.Hour ) (* hour.Hour , error ) {
2642 if err := h .MakeNotAvailable (); err != nil {
2743 return nil , err
0 commit comments