From 8a1214e80c25482ec847ed83d165b341bc8ad689 Mon Sep 17 00:00:00 2001 From: masterElmar <18119527+masterElmar@users.noreply.github.com> Date: Fri, 29 Dec 2023 03:29:05 +0100 Subject: [PATCH] feat:#104 reordered schedule --- backend/service/addSchedule.go | 13 ++++++------- backend/service/fetch/sport/sportFetcher.go | 6 ++++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/backend/service/addSchedule.go b/backend/service/addSchedule.go index 9009776..56763a7 100644 --- a/backend/service/addSchedule.go +++ b/backend/service/addSchedule.go @@ -26,20 +26,19 @@ func AddSchedules(app *pocketbase.PocketBase) { course.UpdateCourse(app) }) - // Every sunday at 3am clean all courses (5 segments - minute, hour, day, month, weekday) "0 3 * * 0" - scheduler.MustAdd("cleanFeeds", "0 3 * * 0", func() { + // Every sunday at 1am clean all courses (5 segments - minute, hour, day, month, weekday) "0 3 * * 0" + scheduler.MustAdd("cleanFeeds", "0 1 * * 0", func() { // clean feeds older than 6 months feed.ClearFeeds(app.Dao(), 6, time.RealClock{}) }) - // Every sunday at 2am fetch all sport events (5 segments - minute, hour, day, month, weekday) "0 2 * * 0" - scheduler.MustAdd("fetchEvents", "0 2 * * 0", func() { + // Every sunday at 3am fetch all sport events (5 segments - minute, hour, day, month, weekday) "0 2 * * 0" + scheduler.MustAdd("fetchSportEvents", "0 3 * * 0", func() { sport.FetchAndUpdateSportEvents(app) }) - - //delete all events and then fetch all events from remote this should be done every day at 4am - scheduler.MustAdd("fetchEvents", "0 4 * * *", func() { + //delete all events and then fetch all events from remote this should be done every sunday at 2am + scheduler.MustAdd("fetchEvents", "0 2 * * 0", func() { err := events.DeleteAllEvents(app) if err != nil { log.Println(err) diff --git a/backend/service/fetch/sport/sportFetcher.go b/backend/service/fetch/sport/sportFetcher.go index 62d91cf..1bff08a 100644 --- a/backend/service/fetch/sport/sportFetcher.go +++ b/backend/service/fetch/sport/sportFetcher.go @@ -18,8 +18,9 @@ import ( "github.com/PuerkitoBio/goquery" ) -// @TODO: add tests -// @TODO: make it like a cron job to fetch the sport courses once a week +// FetchAndUpdateSportEvents fetches all sport events from the HTWK sport website +// it deletes them first and then saves them to the database +// It returns all saved events func FetchAndUpdateSportEvents(app *pocketbase.PocketBase) []model.Event { var sportCourseLinks = fetchAllAvailableSportCourses() @@ -56,6 +57,7 @@ func FetchAndUpdateSportEvents(app *pocketbase.PocketBase) []model.Event { } } + // @TODO: delete and save events in one transaction and it only should delete events that are not in the new events list and save events that are not in the database err = db.DeleteAllEventsForCourse(app, "Sport", functions.GetCurrentSemesterString()) if err != nil { return nil