/
wire_gen.go
76 lines (69 loc) · 2.14 KB
/
wire_gen.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
69
70
71
72
73
74
75
76
// Code generated by Wire. DO NOT EDIT.
//go:generate wire
//+build !wireinject
package main
import (
"github.com/fsufitch/wire-web-demo/app"
"github.com/fsufitch/wire-web-demo/config"
"github.com/fsufitch/wire-web-demo/db"
"github.com/fsufitch/wire-web-demo/log"
"github.com/fsufitch/wire-web-demo/web"
"github.com/google/wire"
)
// Injectors from wire.go:
func InitializeApplicationRunFunc() (app.ApplicationRunFunc, func(), error) {
debugMode, err := config.ProvideDebugModeFromEnvironment()
if err != nil {
return nil, nil, err
}
multiLogger, cleanup := log.ProvideStdOutErrMultiLogger(debugMode)
webPort, err := config.ProvideWebPortFromEnvironment()
if err != nil {
cleanup()
return nil, nil, err
}
initTime := config.ProvideInitTimeFromCurrentTime()
defaultUptimeHandler := &web.DefaultUptimeHandler{
InitTime: initTime,
Logger: multiLogger,
}
databaseString, err := config.ProvideDatabaseStringFromEnvironment()
if err != nil {
cleanup()
return nil, nil, err
}
preInitPostgresDBConn, cleanup2, err := db.ProvidePreInitPostgresDBConn(multiLogger, databaseString)
if err != nil {
cleanup()
return nil, nil, err
}
postgresDBConn, err := db.ProvidePostgresDBConn(multiLogger, preInitPostgresDBConn)
if err != nil {
cleanup2()
cleanup()
return nil, nil, err
}
postgresCounterDAO := &db.PostgresCounterDAO{
DB: postgresDBConn,
Log: multiLogger,
}
defaultCounterHandler := &web.DefaultCounterHandler{
CounterDAO: postgresCounterDAO,
Logger: multiLogger,
}
handlers := web.Handlers{
Uptime: defaultUptimeHandler,
Counter: defaultCounterHandler,
}
router := web.ProvideDefaultRouter(handlers)
serverRunFunc, cleanup3 := web.ProvideServerRunFunc(multiLogger, webPort, router)
interruptChannel := app.ProvideInterruptChannel()
applicationRunFunc := app.ProvideApplicationRunFunc(multiLogger, serverRunFunc, interruptChannel)
return applicationRunFunc, func() {
cleanup3()
cleanup2()
cleanup()
}, nil
}
// wire.go:
var defaultProviderSet = wire.NewSet(app.ApplicationProviderSet, config.EnvironmentProviderSet, db.PostgresDBProviderSet, log.StdOutErrMultiLoggerProviderSet, web.DefaultWebProviderSet)