41 lines
1.0 KiB
Go
41 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"git.kanopo.dev/rhythm/rhythm-backend/internal/config"
|
|
"git.kanopo.dev/rhythm/rhythm-backend/internal/db"
|
|
usersdb "git.kanopo.dev/rhythm/rhythm-backend/internal/db/users"
|
|
"git.kanopo.dev/rhythm/rhythm-backend/internal/http"
|
|
"git.kanopo.dev/rhythm/rhythm-backend/internal/http/api/auth"
|
|
"git.kanopo.dev/rhythm/rhythm-backend/internal/http/api/health"
|
|
"git.kanopo.dev/rhythm/rhythm-backend/internal/logger"
|
|
"git.kanopo.dev/rhythm/rhythm-backend/internal/service/users"
|
|
"go.uber.org/fx"
|
|
"go.uber.org/fx/fxevent"
|
|
"go.uber.org/zap"
|
|
|
|
"github.com/jackc/pgx/v5/pgxpool"
|
|
)
|
|
|
|
func main() {
|
|
fx.New(
|
|
fx.Provide(
|
|
config.Provide,
|
|
logger.ProvideLogger,
|
|
db.ProvidePool,
|
|
func(pool *pgxpool.Pool) usersdb.Querier {
|
|
return usersdb.New(pool)
|
|
},
|
|
users.NewService,
|
|
http.NewServer,
|
|
health.NewHandler,
|
|
auth.NewHandler,
|
|
),
|
|
fx.Invoke(
|
|
http.GlueRoutes,
|
|
),
|
|
fx.WithLogger(func(logger *zap.Logger) fxevent.Logger {
|
|
return &fxevent.ZapLogger{Logger: logger}
|
|
}),
|
|
).Run()
|
|
}
|