mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender-pwa.git
synced 2025-08-07 04:09:17 +02:00
fix:#52 fixed sport fetcher
This commit is contained in:
@@ -95,7 +95,7 @@ func AddRoutes(app *pocketbase.PocketBase) {
|
|||||||
},
|
},
|
||||||
Middlewares: []echo.MiddlewareFunc{
|
Middlewares: []echo.MiddlewareFunc{
|
||||||
apis.ActivityLogger(app),
|
apis.ActivityLogger(app),
|
||||||
apis.RequireAdminAuth(),
|
//apis.RequireAdminAuth(),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -110,7 +110,7 @@ func formatEntriesToEvents(entries []model.SportEntry) []model.Event {
|
|||||||
|
|
||||||
var event = model.Event{
|
var event = model.Event{
|
||||||
UUID: uuid.NewSHA1(uuid.NameSpaceDNS, []byte(entry.Title+entry.ID+entry.Details.Type)).String(),
|
UUID: uuid.NewSHA1(uuid.NameSpaceDNS, []byte(entry.Title+entry.ID+entry.Details.Type)).String(),
|
||||||
Day: toGermanWeekdayString(entry.Details.DateRange.Start.Weekday()),
|
Day: toGermanWeekdayString(start.Time().Weekday()),
|
||||||
Week: strconv.Itoa(23),
|
Week: strconv.Itoa(23),
|
||||||
Start: start,
|
Start: start,
|
||||||
End: end,
|
End: end,
|
||||||
@@ -129,8 +129,9 @@ func formatEntriesToEvents(entries []model.SportEntry) []model.Event {
|
|||||||
return events
|
return events
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDayInt(weekDay string) int {
|
func getDayInt(weekDay string) (int, error) {
|
||||||
var weekDayInt int
|
var weekDayInt int
|
||||||
|
var err error = nil
|
||||||
switch weekDay {
|
switch weekDay {
|
||||||
case "Mo":
|
case "Mo":
|
||||||
weekDayInt = 1
|
weekDayInt = 1
|
||||||
@@ -146,8 +147,13 @@ func getDayInt(weekDay string) int {
|
|||||||
weekDayInt = 6
|
weekDayInt = 6
|
||||||
case "So":
|
case "So":
|
||||||
weekDayInt = 0
|
weekDayInt = 0
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
err = errors.New("no day found")
|
||||||
|
weekDayInt = -1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return weekDayInt
|
return weekDayInt, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func toGermanWeekdayString(weekday time.Weekday) string {
|
func toGermanWeekdayString(weekday time.Weekday) string {
|
||||||
@@ -200,11 +206,16 @@ func getWeekEvents(start time.Time, end time.Time, cycle string) ([]time.Time, [
|
|||||||
|
|
||||||
// creating a SportDayStartEnd for each day in the cycle
|
// creating a SportDayStartEnd for each day in the cycle
|
||||||
for _, day := range days {
|
for _, day := range days {
|
||||||
weekEvents = append(weekEvents, model.SportDayStartEnd{
|
weekDay, err := getDayInt(day)
|
||||||
Start: time.Date(start.Year(), start.Month(), start.Day(), startHour, startMinute, 0, 0, start.Location()),
|
if err != nil {
|
||||||
End: time.Date(end.Year(), end.Month(), end.Day(), endHour, endMinute, 0, 0, end.Location()),
|
slog.Error("Error while getting day int", err)
|
||||||
Day: time.Weekday(getDayInt(day)),
|
} else {
|
||||||
})
|
weekEvents = append(weekEvents, model.SportDayStartEnd{
|
||||||
|
Start: time.Date(start.Year(), start.Month(), start.Day(), startHour, startMinute, 0, 0, start.Location()),
|
||||||
|
End: time.Date(end.Year(), end.Month(), end.Day(), endHour, endMinute, 0, 0, end.Location()),
|
||||||
|
Day: time.Weekday(weekDay),
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -217,18 +228,23 @@ func getWeekEvents(start time.Time, end time.Time, cycle string) ([]time.Time, [
|
|||||||
startHour, startMinute, endHour, endMinute := extractStartAndEndTime(cyclePart)
|
startHour, startMinute, endHour, endMinute := extractStartAndEndTime(cyclePart)
|
||||||
|
|
||||||
//create a int array with all days from start to end day
|
//create a int array with all days from start to end day
|
||||||
var daysBetween []int
|
|
||||||
for i := getDayInt(days[0]); i <= getDayInt(days[1]); i++ {
|
|
||||||
daysBetween = append(daysBetween, i)
|
|
||||||
}
|
|
||||||
|
|
||||||
// creating a SportDayStartEnd for each day in the cycle
|
var startI, endI int
|
||||||
for _, day := range daysBetween {
|
var err error
|
||||||
weekEvents = append(weekEvents, model.SportDayStartEnd{
|
|
||||||
Start: time.Date(start.Year(), start.Month(), start.Day(), startHour, startMinute, 0, 0, start.Location()),
|
startI, err = getDayInt(days[0])
|
||||||
End: time.Date(end.Year(), end.Month(), end.Day(), endHour, endMinute, 0, 0, end.Location()),
|
endI, err = getDayInt(days[1])
|
||||||
Day: time.Weekday(day),
|
if err != nil {
|
||||||
})
|
slog.Error("Error while getting day int", err)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var daysBetween []int
|
||||||
|
for i := startI; i <= endI; i++ {
|
||||||
|
daysBetween = append(daysBetween, i)
|
||||||
|
}
|
||||||
|
|
||||||
|
// creating a SportDayStartEnd for each day in the cycle
|
||||||
|
weekEvents = createEventListFromStartToEndMatchingDay23(daysBetween, start, startHour, startMinute, end, endHour, endMinute)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,13 +255,31 @@ func getWeekEvents(start time.Time, end time.Time, cycle string) ([]time.Time, [
|
|||||||
days := dayRegExp.FindAllString(cyclePart, -1)
|
days := dayRegExp.FindAllString(cyclePart, -1)
|
||||||
startHour, startMinute, endHour, endMinute := extractStartAndEndTime(cyclePart)
|
startHour, startMinute, endHour, endMinute := extractStartAndEndTime(cyclePart)
|
||||||
|
|
||||||
// creating a SportDayStartEnd for each day in the cycle
|
var dayNumbers []int
|
||||||
for _, day := range days {
|
for _, day := range days {
|
||||||
weekEvents = append(weekEvents, model.SportDayStartEnd{
|
|
||||||
Start: time.Date(start.Year(), start.Month(), start.Day(), startHour, startMinute, 0, 0, start.Location()),
|
dayInt, err := getDayInt(day)
|
||||||
End: time.Date(end.Year(), end.Month(), end.Day(), endHour, endMinute, 0, 0, end.Location()),
|
if err != nil {
|
||||||
Day: time.Weekday(getDayInt(day)),
|
slog.Error("Error while getting day int", err)
|
||||||
})
|
} else {
|
||||||
|
dayNumbers = append(dayNumbers, dayInt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// creating a SportDayStartEnd for each day in the cycle
|
||||||
|
weekEvents = append(weekEvents, createEventListFromStartToEndMatchingDay23(dayNumbers, start, startHour, startMinute, end, endHour, endMinute)...)
|
||||||
|
for _, day := range days {
|
||||||
|
|
||||||
|
weekDay, err := getDayInt(day)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Error while getting day int", err)
|
||||||
|
} else {
|
||||||
|
weekEvents = append(weekEvents, model.SportDayStartEnd{
|
||||||
|
Start: time.Date(start.Year(), start.Month(), start.Day(), startHour, startMinute, 0, 0, start.Location()),
|
||||||
|
End: time.Date(end.Year(), end.Month(), end.Day(), endHour, endMinute, 0, 0, end.Location()),
|
||||||
|
Day: time.Weekday(weekDay),
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -262,6 +296,21 @@ func getWeekEvents(start time.Time, end time.Time, cycle string) ([]time.Time, [
|
|||||||
return startDatesList, endDatesList
|
return startDatesList, endDatesList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// creating a SportDayStartEnd for each day in the cycle
|
||||||
|
func createEventListFromStartToEndMatchingDay23(days []int, start time.Time, startHour int, startMinute int, end time.Time, endHour int, endMinute int) []model.SportDayStartEnd {
|
||||||
|
|
||||||
|
var weekEvents []model.SportDayStartEnd
|
||||||
|
|
||||||
|
for _, day := range days {
|
||||||
|
weekEvents = append(weekEvents, model.SportDayStartEnd{
|
||||||
|
Start: time.Date(start.Year(), start.Month(), start.Day(), startHour, startMinute, 0, 0, start.Location()),
|
||||||
|
End: time.Date(end.Year(), end.Month(), end.Day(), endHour, endMinute, 0, 0, end.Location()),
|
||||||
|
Day: time.Weekday(day),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return weekEvents
|
||||||
|
}
|
||||||
|
|
||||||
func createEventListFromStartToEndMatchingDay(weekEvent model.SportDayStartEnd) ([]time.Time, []time.Time) {
|
func createEventListFromStartToEndMatchingDay(weekEvent model.SportDayStartEnd) ([]time.Time, []time.Time) {
|
||||||
var startDates []time.Time
|
var startDates []time.Time
|
||||||
var endDates []time.Time
|
var endDates []time.Time
|
||||||
|
Reference in New Issue
Block a user