diff --git a/internal/server/handle_bookings.go b/internal/server/handle_bookings.go index 541bf11..8015a43 100644 --- a/internal/server/handle_bookings.go +++ b/internal/server/handle_bookings.go @@ -52,6 +52,21 @@ func handleBookingListPage(bs *booking.Service, hc *config.Host) echo.HandlerFun } } +func handleBookingList(bs *booking.Service, hc *config.Host) echo.HandlerFunc { + return func(c echo.Context) error { + search := c.FormValue("search") + + var bookings []*booking.Line + if search != "" { + bookings = bs.Search(search) + } else { + bookings = bs.All() + } + + return c.JSON(http.StatusOK, bookings) + } +} + func handleBookingCreatePage(hc *config.Host) echo.HandlerFunc { return func(c echo.Context) error { return renderTempl(c, http.StatusOK, view.NewBooking(hc.Platforms)) diff --git a/internal/server/routes.go b/internal/server/routes.go index b55f5a2..2f34263 100644 --- a/internal/server/routes.go +++ b/internal/server/routes.go @@ -18,6 +18,7 @@ func (s Server) MountHandlers() { }, })) api.POST("/sync", handleSync(s.bs)) + api.GET("/bookings", handleBookingList(s.bs, s.hc)) private := s.Router.Group("") private.Use(MakeAuthMiddleware(s.as))