forked from short-d/kgs
/
wire_gen.go
92 lines (80 loc) · 3.13 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// Code generated by Wire. DO NOT EDIT.
//go:generate wire
//+build !wireinject
package dep
import (
"database/sql"
"github.com/google/wire"
"github.com/short-d/app/fw"
"github.com/short-d/app/modern/mdcli"
"github.com/short-d/app/modern/mddb"
"github.com/short-d/app/modern/mdenv"
"github.com/short-d/app/modern/mdgrpc"
"github.com/short-d/app/modern/mdio"
"github.com/short-d/app/modern/mdlogger"
"github.com/short-d/app/modern/mdruntime"
"github.com/short-d/app/modern/mdservice"
"github.com/short-d/app/modern/mdtimer"
"github.com/short-d/app/modern/mdtracer"
"github.com/primedata-ai/kgs/app/adapter/db"
"github.com/primedata-ai/kgs/app/adapter/rpc"
"github.com/primedata-ai/kgs/app/usecase"
"github.com/primedata-ai/kgs/app/usecase/dispatcher"
"github.com/primedata-ai/kgs/app/usecase/keys"
"github.com/primedata-ai/kgs/app/usecase/keys/gen"
"github.com/primedata-ai/kgs/dep/provider"
)
// Injectors from wire.go:
func InitCommandFactory() fw.CommandFactory {
cobraFactory := mdcli.NewCobraFactory()
return cobraFactory
}
func InitDBConnector() fw.DBConnector {
postgresConnector := mddb.NewPostgresConnector()
return postgresConnector
}
func InitDBMigrationTool() fw.DBMigrationTool {
postgresMigrationTool := mddb.NewPostgresMigrationTool()
return postgresMigrationTool
}
func InitEnvironment() fw.Environment {
goDotEnv := mdenv.NewGoDotEnv()
return goDotEnv
}
func InitGRpcService(name string, logLevel fw.LogLevel, serviceEmailAddress provider.ServiceEmailAddress, sqlDB *sql.DB, securityPolicy fw.SecurityPolicy, sendGridAPIKey provider.SendGridAPIKey, templateRootDir provider.TemplateRootDir, cacheSize provider.CacheSize, eventDispatcher fw.Dispatcher) (mdservice.Service, error) {
stdOut := mdio.NewBuildInStdOut()
timer := mdtimer.NewTimer()
buildIn := mdruntime.NewBuildIn()
local := mdlogger.NewLocal(name, logLevel, stdOut, timer, buildIn)
availableKeySQL := db.NewAvailableKeySQL(sqlDB)
v := gen.NewBase62()
alphabet, err := gen.NewAlphabet(v)
if err != nil {
return mdservice.Service{}, err
}
producerPersist := keys.NewProducerPersist(availableKeySQL, alphabet, local)
keyConsumer := db.NewKeyConsumerSQL(sqlDB)
consumerPersist := keys.NewConsumerPersist(keyConsumer)
consumerCached, err := provider.NewConsumer(cacheSize, consumerPersist)
if err != nil {
return mdservice.Service{}, err
}
template := provider.NewHTML(templateRootDir)
sendGrid := provider.NewSendGrid(sendGridAPIKey)
emailNotifierEventListener := provider.NewEmailNotifierEventListener(local, template, name, serviceEmailAddress, sendGrid)
emitter, err := dispatcher.NewEventEmitter(eventDispatcher, emailNotifierEventListener)
if err != nil {
return mdservice.Service{}, err
}
useCase := usecase.NewUseCase(local, producerPersist, consumerCached, emitter)
keyGenServer := rpc.NewKeyGenServer(useCase)
kgsAPI := rpc.NewKgsAPI(keyGenServer)
gRpc, err := mdgrpc.NewGRpc(kgsAPI, securityPolicy)
if err != nil {
return mdservice.Service{}, err
}
service := mdservice.New(name, gRpc, local)
return service, nil
}
// wire.go:
var observabilitySet = wire.NewSet(wire.Bind(new(fw.Logger), new(mdlogger.Local)), mdlogger.NewLocal, mdtracer.NewLocal)