(Feat): Initial Commit
This commit is contained in:
52
internal/api/wire.go
Normal file
52
internal/api/wire.go
Normal file
@@ -0,0 +1,52 @@
|
||||
//go:build wireinject
|
||||
|
||||
package api
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"testing"
|
||||
|
||||
"allaboutapps.dev/aw/go-starter/internal/auth"
|
||||
"allaboutapps.dev/aw/go-starter/internal/config"
|
||||
"allaboutapps.dev/aw/go-starter/internal/data/local"
|
||||
"allaboutapps.dev/aw/go-starter/internal/metrics"
|
||||
"github.com/google/wire"
|
||||
)
|
||||
|
||||
// INJECTORS - https://github.com/google/wire/blob/main/docs/guide.md#injectors
|
||||
|
||||
// serviceSet groups the default set of providers that are required for initing a server
|
||||
var serviceSet = wire.NewSet(
|
||||
newServerWithComponents,
|
||||
NewPush,
|
||||
NewMailer,
|
||||
NewI18N,
|
||||
authServiceSet,
|
||||
local.NewService,
|
||||
metrics.New,
|
||||
NewClock,
|
||||
)
|
||||
|
||||
var authServiceSet = wire.NewSet(
|
||||
NewAuthService,
|
||||
wire.Bind(new(AuthService), new(*auth.Service)),
|
||||
)
|
||||
|
||||
// InitNewServer returns a new Server instance.
|
||||
func InitNewServer(
|
||||
_ config.Server,
|
||||
) (*Server, error) {
|
||||
wire.Build(serviceSet, NewDB, NoTest)
|
||||
return new(Server), nil
|
||||
}
|
||||
|
||||
// InitNewServerWithDB returns a new Server instance with the given DB instance.
|
||||
// All the other components are initialized via go wire according to the configuration.
|
||||
func InitNewServerWithDB(
|
||||
_ config.Server,
|
||||
_ *sql.DB,
|
||||
t ...*testing.T,
|
||||
) (*Server, error) {
|
||||
wire.Build(serviceSet)
|
||||
return new(Server), nil
|
||||
}
|
||||
Reference in New Issue
Block a user