package service import ( "github.com/labstack/echo/v5" "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/apis" "github.com/pocketbase/pocketbase/core" events2 "htwk-planner/service/events" fetch2 "htwk-planner/service/fetch" "htwk-planner/service/ical" "htwk-planner/service/room" "net/http" "os" ) func AddRoutes(app *pocketbase.PocketBase) { app.OnBeforeServe().Add(func(e *core.ServeEvent) error { e.Router.GET("/*", apis.StaticDirectoryHandler(os.DirFS("./pb_public"), false)) return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodGet, Path: "/api/fetchPlans", Handler: func(c echo.Context) error { return fetch2.GetSeminarEvents(c, app) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodGet, Path: "/api/fetchGroups", Handler: func(c echo.Context) error { return fetch2.SeminarGroups(c, app) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodGet, Path: "/api/rooms", Handler: func(c echo.Context) error { return room.GetRooms(c, app) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodPost, Path: "/api/createFeed", Handler: func(c echo.Context) error { return ical.CreateIndividualFeed(c, app) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodGet, Path: "/api/feed", Handler: func(c echo.Context) error { token := c.QueryParam("token") return ical.Feed(c, app, token) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodGet, Path: "/api/course/modules", Handler: func(c echo.Context) error { course := c.QueryParam("course") semester := c.QueryParam("semester") return events2.GetModulesForCourseDistinct(app, c, course, semester) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodGet, Path: "/api/modules", Handler: func(c echo.Context) error { return events2.GetAllModulesDistinct(app, c) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { _, err := e.Router.AddRoute(echo.Route{ Method: http.MethodGet, Path: "/api/courses", Handler: func(c echo.Context) error { return events2.GetAllCourses(app, c) }, Middlewares: []echo.MiddlewareFunc{ apis.ActivityLogger(app), }, }) if err != nil { return err } return nil }) }