fix:#65 reworked path param upgrade

This commit is contained in:
Elmar Kresse
2025-04-22 16:46:08 +02:00
parent 3e07451c47
commit 1e3fea26e3
4 changed files with 49 additions and 104 deletions

View File

@@ -19,38 +19,37 @@ package service
import (
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
"htwkalender/data-manager/model"
"htwkalender/data-manager/service/feed"
"htwkalender/data-manager/service/ical"
"io"
"log/slog"
"net/http"
)
func addFeedRoutes(app *pocketbase.PocketBase) {
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
se.Router.POST("/api/feed", func(e *core.RequestEvent) error {
requestBody, _ := io.ReadAll(e.Request.Body)
result, err := ical.CreateIndividualFeed(requestBody, app)
if err != nil {
slog.Error("Failed to create individual feed", "error", err)
return e.JSON(http.StatusInternalServerError, "Failed to create individual feed")
}
return e.JSON(http.StatusOK, result)
})
return se.Next()
func addFeedRoutes(se *core.ServeEvent, pb *pocketbase.PocketBase) {
se.Router.POST("/api/feed", func(e *core.RequestEvent) error {
var feedCollection []model.FeedCollection
err := e.BindBody(&feedCollection)
if err != nil {
slog.Error("Failed to bind request body", "error", err)
return e.JSON(http.StatusBadRequest, "Invalid request body")
}
result, err := ical.CreateIndividualFeed(feedCollection, pb)
if err != nil {
slog.Error("Failed to create individual feed", "error", err)
return e.JSON(http.StatusInternalServerError, "Failed to create individual feed")
}
return e.JSON(http.StatusOK, result)
})
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
se.Router.DELETE("/api/feed", func(e *core.RequestEvent) error {
token := e.Request.PathValue("token")
err := feed.MarkFeedForDeletion(app, token)
if err != nil {
return e.JSON(http.StatusNotFound, err)
} else {
return e.JSON(http.StatusOK, "Feed deleted")
}
})
return se.Next()
se.Router.DELETE("/api/feed", func(e *core.RequestEvent) error {
token := e.Request.URL.Query().Get("token")
err := feed.MarkFeedForDeletion(pb, token)
if err != nil {
return e.JSON(http.StatusNotFound, err)
} else {
return e.JSON(http.StatusOK, "Feed deleted")
}
})
}