feat:#26 added new api route

This commit is contained in:
Elmar Kresse
2024-02-04 00:54:59 +01:00
parent 57ef3c2f70
commit 4878499650
4 changed files with 66 additions and 10 deletions

View File

@@ -294,8 +294,14 @@ func AddRoutes(app *pocketbase.PocketBase) {
Method: http.MethodGet,
Path: "/api/courses",
Handler: func(c echo.Context) error {
courses := events.GetAllCourses(app)
return c.JSON(200, courses)
semester := c.QueryParam("semester")
if semester == "" {
courses := events.GetAllCourses(app)
return c.JSON(200, courses)
} else {
courses := events.GetAllCoursesForSemester(app, semester)
return c.JSON(200, courses)
}
},
Middlewares: []echo.MiddlewareFunc{
apis.ActivityLogger(app),
@@ -307,14 +313,21 @@ func AddRoutes(app *pocketbase.PocketBase) {
return nil
})
// api end point to get all courses for a specific semester with courses that have events
app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
_, err := e.Router.AddRoute(echo.Route{
Method: http.MethodGet,
Path: "/api/courses",
Path: "/api/courses/events",
Handler: func(c echo.Context) error {
semester := c.QueryParam("semester")
courses := events.GetAllCoursesForSemester(app, semester)
return c.JSON(200, courses)
courses, err := events.GetAllCoursesForSemesterWithEvents(app, semester)
if err != nil {
slog.Error("Failed to get courses for semester with events: %v", err)
return c.JSON(http.StatusBadRequest, "Failed to get courses for semester with events")
} else {
return c.JSON(200, courses)
}
},
Middlewares: []echo.MiddlewareFunc{
apis.ActivityLogger(app),