diff --git a/Backend/endpoints/time.go b/Backend/endpoints/time.go index 102c3f2..0ed80a8 100644 --- a/Backend/endpoints/time.go +++ b/Backend/endpoints/time.go @@ -261,22 +261,3 @@ func updateAbsence(r *http.Request) error { return nil } - -func createAbsence(absenceType int, user models.User, loc *time.Location, r *http.Request) { - absenceDate, err := time.ParseInLocation("2006-01-02", r.FormValue("date"), loc) - if err != nil { - log.Println("Cannot get date from input! Skipping absence creation", err) - return - } - - absence, err := models.NewAbsence(user.CardUID, absenceType, absenceDate) - if err != nil { - log.Println("Error creating absence!", err) - return - } - err = absence.Insert() - if err != nil { - log.Println("Error inserting absence!", err) - return - } -} diff --git a/Backend/go.mod b/Backend/go.mod index 030b122..34c75a2 100644 --- a/Backend/go.mod +++ b/Backend/go.mod @@ -9,16 +9,22 @@ require github.com/a-h/templ v0.3.943 require github.com/alexedwards/scs/v2 v2.8.0 require ( + github.com/Dadido3/go-typst v0.3.0 github.com/golang-migrate/migrate/v4 v4.18.3 github.com/joho/godotenv v1.5.1 ) require ( - github.com/Dadido3/go-typst v0.3.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/smasher164/xid v0.1.2 // indirect go.uber.org/atomic v1.7.0 // indirect - golang.org/x/sys v0.36.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.37.0 // indirect + golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 // indirect golang.org/x/text v0.23.0 // indirect + golang.org/x/tools v0.38.0 // indirect ) + +tool golang.org/x/tools/cmd/deadcode diff --git a/Backend/go.sum b/Backend/go.sum index a4fe99c..4bbe15a 100644 --- a/Backend/go.sum +++ b/Backend/go.sum @@ -72,11 +72,19 @@ go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt3 go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 h1:LvzTn0GQhWuvKH/kVRS3R3bVAsdQWI7hvfLHGgh9+lU= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8/go.mod h1:Pi4ztBfryZoJEkyFTI5/Ocsu2jXyDr6iSdgJiYE/uwE= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/Backend/models/workDay.go b/Backend/models/workDay.go index 0fc67aa..de5cf14 100644 --- a/Backend/models/workDay.go +++ b/Backend/models/workDay.go @@ -39,35 +39,39 @@ type WorkDay struct { func GetDays(user User, tsFrom, tsTo time.Time, orderedForward bool) []IWorkDay { var allDays map[string]IWorkDay = make(map[string]IWorkDay) - var sortedDays []IWorkDay + for _, day := range GetWorkDays(user, tsFrom, tsTo) { allDays[day.Date().Format("2006-01-02")] = &day } absences, err := GetAbsencesByCardUID(user.CardUID, tsFrom, tsTo) if err != nil { log.Println("Error gettings absences for all Days!", err) - return sortedDays + return nil } for _, day := range absences { if helper.IsWeekend(day.Date()) { continue } if day.AbwesenheitTyp.WorkTime == 1 { - if workDay, ok := allDays[day.Date().Format("2006-01-02")].(*WorkDay); ok { - if len(workDay.Bookings) > 0 { - workDay.kurzArbeit = true - workDay.kurzArbeitAbsence = day - } + if workDay, ok := allDays[day.Date().Format("2006-01-02")].(*WorkDay); ok && len(workDay.Bookings) > 0 { + workDay.kurzArbeit = true + workDay.kurzArbeitAbsence = day } } else { allDays[day.Date().Format("2006-01-02")] = &day } } - for _, day := range allDays { + sortedDays := sortDays(allDays, orderedForward) + return sortedDays +} + +func sortDays(days map[string]IWorkDay, forward bool) []IWorkDay { + var sortedDays []IWorkDay + for _, day := range days { sortedDays = append(sortedDays, day) } - if orderedForward { + if forward { sort.Slice(sortedDays, func(i, j int) bool { return sortedDays[i].Date().After(sortedDays[j].Date()) })