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[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) }