fix:#41 refactored services

This commit is contained in:
Elmar Kresse
2024-07-06 15:30:01 +02:00
parent a65a57bec6
commit 74ad6ad8e3
12 changed files with 335 additions and 111 deletions

View File

@@ -17,9 +17,9 @@
package service
import (
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/cron"
"htwkalender/data-manager/model/serviceModel"
"htwkalender/data-manager/service/course"
"htwkalender/data-manager/service/feed"
"htwkalender/data-manager/service/fetch/sport"
@@ -30,9 +30,9 @@ import (
"strconv"
)
func AddSchedules(app *pocketbase.PocketBase) {
func AddSchedules(services serviceModel.Service) {
app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error {
scheduler := cron.New()
// !! IMPORTANT !! CRON is based on UTC time zone so in Germany it is UTC+2 in summer and UTC+1 in winter
@@ -40,7 +40,7 @@ func AddSchedules(app *pocketbase.PocketBase) {
// Every sunday at 10pm update all courses (5 segments - minute, hour, day, month, weekday) "0 22 * * 0"
scheduler.MustAdd("updateCourses", "0 22 * * 0", func() {
slog.Info("Started updating courses schedule")
groups, err := v1.FetchSeminarGroups(app)
groups, err := v1.FetchSeminarGroups(services.App)
if err != nil {
slog.Warn("Failed to fetch seminar groups: ", "error", err)
}
@@ -51,20 +51,20 @@ func AddSchedules(app *pocketbase.PocketBase) {
// In Germany it is 7am and 7pm, syllabus gets updated twice a day at German 5:00 Uhr and 17:00 Uhr
scheduler.MustAdd("updateEventsByCourse", "0 5,17 * * *", func() {
slog.Info("Started updating courses schedule")
course.UpdateCourse(app)
course.UpdateCourse(services)
})
// 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
slog.Info("Started cleaning feeds schedule")
feed.ClearFeeds(app.Dao(), 6, time.RealClock{})
feed.ClearFeeds(services.App.Dao(), 6, time.RealClock{})
})
// 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() {
slog.Info("Started fetching sport events schedule")
sportEvents, err := sport.FetchAndUpdateSportEvents(app)
sportEvents, err := sport.FetchAndUpdateSportEvents(services.App)
if err != nil {
slog.Error("Failed to fetch and save sport events:", "error", err)
}
@@ -73,7 +73,7 @@ func AddSchedules(app *pocketbase.PocketBase) {
//fetch all events for semester and delete from remote this should be done every sunday at 2am
scheduler.MustAdd("fetchEvents", "0 22 * * 6", func() {
savedEvents, err := v2.FetchAllEventsAndSave(app, time.RealClock{})
savedEvents, err := v2.FetchAllEventsAndSave(services.App, time.RealClock{})
if err != nil {
slog.Error("Failed to fetch and save events: ", "error", err)
} else {