/
find_all_programs.go
68 lines (59 loc) · 1.48 KB
/
find_all_programs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package app
import (
"context"
"github.com/bruli/raspberryRainSensor/pkg/common/cqs"
"github.com/bruli/raspberryWaterSystem/internal/domain/program"
)
const FindAllProgramsQueryName = "findAllPrograms"
type FindAllProgramsQuery struct{}
func (f FindAllProgramsQuery) Name() string {
return FindAllProgramsQueryName
}
type FindAllPrograms struct {
daily, odd, even ProgramRepository
weekly WeeklyProgramRepository
temperature TemperatureProgramRepository
}
func (f FindAllPrograms) Handle(ctx context.Context, _ cqs.Query) (any, error) {
dailies, err := f.daily.FindAll(ctx)
if err != nil {
return nil, err
}
odd, err := f.odd.FindAll(ctx)
if err != nil {
return nil, err
}
even, err := f.even.FindAll(ctx)
if err != nil {
return nil, err
}
weekly, err := f.weekly.FindAll(ctx)
if err != nil {
return nil, err
}
temp, err := f.temperature.FindAll(ctx)
if err != nil {
return nil, err
}
return AllPrograms{
Daily: dailies,
Odd: odd,
Even: even,
Weekly: weekly,
Temperature: temp,
}, nil
}
func NewFindAllPrograms(
daily ProgramRepository,
odd ProgramRepository,
even ProgramRepository,
weekly WeeklyProgramRepository,
temperature TemperatureProgramRepository,
) FindAllPrograms {
return FindAllPrograms{daily: daily, odd: odd, even: even, weekly: weekly, temperature: temperature}
}
type AllPrograms struct {
Daily, Odd, Even []program.Program
Weekly []program.Weekly
Temperature []program.Temperature
}