Mandanten, OAuth, Cleanup von der Main Methode.

This commit is contained in:
2025-08-20 16:08:58 +02:00
parent a6570d463a
commit 372dced0a1
16 changed files with 432 additions and 154 deletions

74
cmd/api/main.go Normal file
View File

@ -0,0 +1,74 @@
package main
import (
"context"
"log"
"log/slog"
"os"
"git.kocoder.xyz/kocoded/vt/routers"
"git.kocoder.xyz/kocoded/vt/utils"
"github.com/gofiber/contrib/websocket"
"github.com/gofiber/fiber/v2"
"github.com/joho/godotenv"
)
func main() {
logger := slog.New(slog.NewTextHandler(os.Stdout, nil))
err := godotenv.Load()
if err != nil {
logger.Error("Error Loading Environment variables! ", "error", err)
}
db := utils.SetupDatabase(os.Getenv("DB_DSN"), logger)
appCtx := &utils.Application{Logger: logger, DB: db}
app := fiber.New()
utils.RegisterMiddlewares(app)
utils.CreateOIDCClient(context.Background(), app, logger)
routers.RegisterMandantRouter(app.Group("/v1/mandant"), appCtx)
routers.RegisterAnsprechpartnerRouter(app.Group("/v1/ansprechpartner"), appCtx)
routers.RegisterFirmaRouter(app.Group("/v1/firma"), appCtx)
app.Use("/ws", func(c *fiber.Ctx) error {
if websocket.IsWebSocketUpgrade(c) {
c.Locals("allowed", true)
return c.Next()
}
return fiber.ErrUpgradeRequired
})
app.Get("/ws/:id<int>", websocket.New(func(c *websocket.Conn) {
log.Println(c.Locals("allowed")) // true
log.Println(c.Params("id")) // 123
log.Println(c.Query("v")) // 1.0
log.Println(c.Cookies("session")) // ""
var (
mt int
msg []byte
err error
)
for {
if mt, msg, err = c.ReadMessage(); err != nil {
slog.Info("read", "error", err)
break
}
slog.Info("recv:", "messageType", mt, "bytes", msg)
if err = c.WriteMessage(mt, msg); err != nil {
slog.Info("write", "error", err)
break
}
}
}))
log.Fatalln(app.Listen(":3000"))
}