mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-31 16:59:14 +02:00
update:#82 added schedule for sport update
This commit is contained in:
@@ -61,7 +61,7 @@ func AddRoutes(app *pocketbase.PocketBase) {
|
|||||||
Path: "/api/fetch/sports",
|
Path: "/api/fetch/sports",
|
||||||
Handler: func(c echo.Context) error {
|
Handler: func(c echo.Context) error {
|
||||||
|
|
||||||
sportEvents := sport.RetrieveAndFetchAllSportCourses(app)
|
sportEvents := sport.FetchAndUpdateSportEvents(app)
|
||||||
return c.JSON(200, sportEvents)
|
return c.JSON(200, sportEvents)
|
||||||
},
|
},
|
||||||
Middlewares: []echo.MiddlewareFunc{
|
Middlewares: []echo.MiddlewareFunc{
|
||||||
|
@@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/pocketbase/pocketbase/tools/cron"
|
"github.com/pocketbase/pocketbase/tools/cron"
|
||||||
"htwkalender/service/course"
|
"htwkalender/service/course"
|
||||||
"htwkalender/service/feed"
|
"htwkalender/service/feed"
|
||||||
|
"htwkalender/service/fetch/sport"
|
||||||
"htwkalender/service/functions/time"
|
"htwkalender/service/functions/time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -26,6 +27,12 @@ func AddSchedules(app *pocketbase.PocketBase) {
|
|||||||
// clean feeds older than 6 months
|
// clean feeds older than 6 months
|
||||||
feed.ClearFeeds(app.Dao(), 6, time.RealClock{})
|
feed.ClearFeeds(app.Dao(), 6, time.RealClock{})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Every day at 2am update all Sport events (5 segments - minute, hour, day, month, weekday) "0 2 * * *"
|
||||||
|
scheduler.MustAdd("fetchEvents", "0 2 * * *", func() {
|
||||||
|
sport.FetchAndUpdateSportEvents(app)
|
||||||
|
})
|
||||||
|
|
||||||
scheduler.Start()
|
scheduler.Start()
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
@@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/pocketbase/pocketbase/tools/types"
|
"github.com/pocketbase/pocketbase/tools/types"
|
||||||
"htwkalender/model"
|
"htwkalender/model"
|
||||||
"htwkalender/service/db"
|
"htwkalender/service/db"
|
||||||
|
"htwkalender/service/functions"
|
||||||
"net/http"
|
"net/http"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -19,7 +20,7 @@ import (
|
|||||||
|
|
||||||
// @TODO: add tests
|
// @TODO: add tests
|
||||||
// @TODO: make it like a cron job to fetch the sport courses once a week
|
// @TODO: make it like a cron job to fetch the sport courses once a week
|
||||||
func RetrieveAndFetchAllSportCourses(app *pocketbase.PocketBase) []model.Event {
|
func FetchAndUpdateSportEvents(app *pocketbase.PocketBase) []model.Event {
|
||||||
|
|
||||||
var sportCourseLinks = fetchAllAvailableSportCourses()
|
var sportCourseLinks = fetchAllAvailableSportCourses()
|
||||||
sportEntries := fetchHTWKSportCourses(sportCourseLinks)
|
sportEntries := fetchHTWKSportCourses(sportCourseLinks)
|
||||||
@@ -55,6 +56,11 @@ func RetrieveAndFetchAllSportCourses(app *pocketbase.PocketBase) []model.Event {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = db.DeleteAllEventsForCourse(app, "Sport", functions.GetCurrentSemesterString())
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// save events to database
|
// save events to database
|
||||||
savedEvents, err := db.SaveEvents(events, app)
|
savedEvents, err := db.SaveEvents(events, app)
|
||||||
|
|
||||||
|
14
backend/service/functions/semester.go
Normal file
14
backend/service/functions/semester.go
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package functions
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
// GetCurrentSemesterString returns the current semester as string
|
||||||
|
// if current month is between 10 and 03 -> winter semester "ws"
|
||||||
|
func GetCurrentSemesterString() string {
|
||||||
|
|
||||||
|
if time.Now().Month() >= 10 || time.Now().Month() <= 3 {
|
||||||
|
return "ws"
|
||||||
|
} else {
|
||||||
|
return "ss"
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user