Finish Phase 6: Push frontend, WebAuthn frontend, OpenAPI/Swagger
Frontend: - stores/push.ts: fixed VAPID key endpoint, added checkSubscription, proper subscription format - UserSettings.tsx: added [ENABLE PUSH] toggle and [REGISTER PASSKEY] button - LoginForm.tsx: added [SIGN IN WITH PASSKEY] button Backend: - cmd/server/main.go: added Swagger annotations, /docs/* route - docs/: generated swagger.json, swagger.yaml, docs.go - Makefile: added docs target for swag init
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
_ "git.dustin.coffee/hobokenchicken/dumpsterChat/docs"
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/auth"
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/bot"
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/channel"
|
||||
@@ -24,8 +25,18 @@ import (
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/webhook"
|
||||
"github.com/go-chi/chi/v5"
|
||||
chimw "github.com/go-chi/chi/v5/middleware"
|
||||
httpSwagger "github.com/swaggo/http-swagger"
|
||||
)
|
||||
|
||||
// @title Dumpster API
|
||||
// @version 1.0
|
||||
// @description A chaotic, self-hosted Discord-like platform API
|
||||
// @host localhost:8080
|
||||
// @BasePath /api/v1
|
||||
// @schemes http https
|
||||
// @securityDefinitions.apikey SessionAuth
|
||||
// @in cookie
|
||||
// @name dumpster_session
|
||||
func main() {
|
||||
logger := slog.New(slog.NewTextHandler(os.Stdout, nil))
|
||||
|
||||
@@ -190,6 +201,11 @@ func main() {
|
||||
webhook.NewHandler(database.DB, hub).Execute(w, r)
|
||||
})
|
||||
|
||||
// Swagger UI
|
||||
r.Get("/docs/*", httpSwagger.Handler(
|
||||
httpSwagger.URL("/docs/swagger.json"),
|
||||
))
|
||||
|
||||
// Static file serving for production (SPA)
|
||||
staticDir := "/srv/web"
|
||||
if _, err := os.Stat(staticDir); err == nil {
|
||||
|
||||
Reference in New Issue
Block a user