Files
arbeitszeitmessung/Backend/endpoints/team_presence.go
2025-04-10 09:16:37 +02:00

46 lines
1.1 KiB
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)
break
case http.MethodOptions:
// just support options header for non GET Requests from SWAGGER
w.WriteHeader(http.StatusOK)
break
default:
http.Error(w, "Method not allowed!", http.StatusMethodNotAllowed)
break
}
}
func teamPresence(w http.ResponseWriter, r *http.Request){
user, err := (*models.User).GetUserFromSession(nil, Session, r.Context())
if err != nil {
log.Println("Error getting user!", err)
}
team, err := user.GetTeamMembers()
teamPresence := make(map[bool][]models.User)
for _, user := range team {
present := user.CheckAnwesenheit()
teamPresence[present] = append(teamPresence[present], user)
}
if(err != nil){
log.Println("Error getting team", err)
}
templates.TeamPresencePage(teamPresence).Render(r.Context(), w)
}