-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
51 lines (45 loc) · 1.67 KB
/
main.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
package main
import (
"advent-of-code-2024/internal/routes"
day1 "advent-of-code-2024/internal/services/day1"
day2 "advent-of-code-2024/internal/services/day2"
day3 "advent-of-code-2024/internal/services/day3"
day4 "advent-of-code-2024/internal/services/day4"
day5 "advent-of-code-2024/internal/services/day5"
day6 "advent-of-code-2024/internal/services/day6"
"github.com/gin-gonic/gin"
"go.uber.org/dig"
)
func main() {
container := dig.New()
// register "services" and routes
handleErr(container.Provide(day1.NewDay1Part1))
handleErr(container.Provide(day1.NewDay1Part2))
handleErr(container.Provide(day2.NewDay2Part1))
handleErr(container.Provide(day2.NewDay2Part2))
handleErr(container.Provide(day3.NewDay3Part1))
handleErr(container.Provide(day3.NewDay3Part2))
handleErr(container.Provide(day4.NewDay4Part1))
handleErr(container.Provide(day4.NewDay4Part2))
handleErr(container.Provide(day5.NewDay5Part1))
handleErr(container.Provide(day5.NewDay5Part2))
handleErr(container.Provide(day6.NewDay6Part1))
handleErr(container.Provide(day6.NewDay6Part2))
// add routes
handleErr(container.Provide(routes.NewDay1))
handleErr(container.Provide(routes.NewDay2))
handleErr(container.Provide(routes.NewDay3))
handleErr(container.Provide(routes.NewDay4))
handleErr(container.Provide(routes.NewDay5))
handleErr(container.Provide(routes.NewDay6))
handleErr(container.Provide(routes.NewServer))
// host router, in future would have a list of background services in here too
handleErr(container.Invoke(func(router *gin.Engine) {
handleErr(router.Run("localhost:8080")) // auto injects routes in constructors
}))
}
func handleErr(err error) {
if err != nil {
panic(err)
}
}