Files
arbeitszeitmessung/Backend/endpoints/team_presence.go
Tom Tröger 3dd4b134c8
All checks were successful
Tests / Run Go Tests (push) Successful in 1m43s
closes #44
2025-10-01 22:53:27 +02: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)
}