mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-31 00:39: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",
|
||||
Handler: func(c echo.Context) error {
|
||||
|
||||
sportEvents := sport.RetrieveAndFetchAllSportCourses(app)
|
||||
sportEvents := sport.FetchAndUpdateSportEvents(app)
|
||||
return c.JSON(200, sportEvents)
|
||||
},
|
||||
Middlewares: []echo.MiddlewareFunc{
|
||||
|
@@ -6,6 +6,7 @@ import (
|
||||
"github.com/pocketbase/pocketbase/tools/cron"
|
||||
"htwkalender/service/course"
|
||||
"htwkalender/service/feed"
|
||||
"htwkalender/service/fetch/sport"
|
||||
"htwkalender/service/functions/time"
|
||||
)
|
||||
|
||||
@@ -26,6 +27,12 @@ func AddSchedules(app *pocketbase.PocketBase) {
|
||||
// clean feeds older than 6 months
|
||||
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()
|
||||
return nil
|
||||
})
|
||||
|
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/pocketbase/pocketbase/tools/types"
|
||||
"htwkalender/model"
|
||||
"htwkalender/service/db"
|
||||
"htwkalender/service/functions"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@@ -19,7 +20,7 @@ import (
|
||||
|
||||
// @TODO: add tests
|
||||
// @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()
|
||||
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
|
||||
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