58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"strconv"
|
|
|
|
"git.logidex.ru/fakz9/logidex-id/internal/api/auth"
|
|
"git.logidex.ru/fakz9/logidex-id/internal/api/user"
|
|
"git.logidex.ru/fakz9/logidex-id/internal/config"
|
|
"git.logidex.ru/fakz9/logidex-id/internal/db"
|
|
"git.logidex.ru/fakz9/logidex-id/internal/hydra_client"
|
|
"git.logidex.ru/fakz9/logidex-id/internal/redis"
|
|
"github.com/gofiber/fiber/v2"
|
|
"go.uber.org/fx"
|
|
)
|
|
|
|
func NewFiberApp(cfg config.Config) *fiber.App {
|
|
app := fiber.New()
|
|
return app
|
|
}
|
|
|
|
func StartFiberApp(lifecycle fx.Lifecycle, app *fiber.App, cfg config.Config) {
|
|
lifecycle.Append(fx.Hook{
|
|
OnStart: func(ctx context.Context) error {
|
|
go func() {
|
|
if err := app.Listen(":" + strconv.Itoa(cfg.App.Port)); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}()
|
|
|
|
return nil
|
|
},
|
|
OnStop: func(ctx context.Context) error {
|
|
return app.Shutdown()
|
|
},
|
|
})
|
|
}
|
|
func NewFiberRouter(app *fiber.App) fiber.Router {
|
|
return app.Group("/api")
|
|
}
|
|
|
|
func main() {
|
|
fx.New(
|
|
fx.Provide(
|
|
config.NewConfig,
|
|
redis.NewRedisClient,
|
|
hydra_client.NewHydraClient,
|
|
NewFiberApp,
|
|
NewFiberRouter,
|
|
),
|
|
db.Module,
|
|
user.Module,
|
|
auth.Module,
|
|
fx.Invoke(StartFiberApp),
|
|
).Run()
|
|
}
|