Files
arbeitszeitmessung/Backend/endpoints/team-presence.go
Tom Tröger f73c2b1a96
Some checks failed
Tests / Run Go Tests (push) Failing after 2m3s
tried to add untertags krank
2025-12-05 15:03:44 +01:00

41 lines
1005 B
Go

package endpoints
import (
"arbeitszeitmessung/helper"
"arbeitszeitmessung/models"
"arbeitszeitmessung/templates"
"log"
"net/http"
)
func TeamPresenceHandler(w http.ResponseWriter, r *http.Request) {
helper.RequiresLogin(Session, w, r)
helper.SetCors(w)
switch r.Method {
case http.MethodGet:
teamPresence(w, r)
case http.MethodOptions:
// just support options header for non GET Requests from SWAGGER
w.WriteHeader(http.StatusOK)
default:
http.Error(w, "Method not allowed!", http.StatusMethodNotAllowed)
}
}
func teamPresence(w http.ResponseWriter, r *http.Request) {
user, err := models.GetUserFromSession(Session, r.Context())
if err != nil {
log.Println("Error getting user!", err)
}
team, err := user.GetTeamMembers()
teamPresence := make(map[models.User]bool)
for _, user := range team {
teamPresence[user] = user.CheckAnwesenheit()
}
if err != nil {
log.Println("Error getting team", err)
}
templates.TeamPresencePage(teamPresence).Render(r.Context(), w)
}