Files
sprintpadawan/api/dashboard.go
T
2026-04-27 16:55:02 -06:00

51 lines
980 B
Go

package api
import (
"log"
"net/http"
"sprintpadawan/lib"
)
type RoomView struct {
ID int
Name string
Code string
Scale string
IsOwner bool
MemberCount int
}
func handleIndex(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" {
http.NotFound(w, r)
return
}
user := r.Context().Value(userKey).(*lib.User)
rooms, _ := lib.GetRoomsForUser(user.ID)
data := struct {
*lib.User
Rooms []RoomView
}{
User: user,
}
for _, room := range rooms {
members, _ := lib.GetRoomMembers(room.ID)
data.Rooms = append(data.Rooms, RoomView{
ID: room.ID,
Name: room.Name,
Code: room.Code,
Scale: room.Scale,
IsOwner: room.OwnerID == user.ID,
MemberCount: len(members),
})
}
if err := templates.ExecuteTemplate(w, "index.html", data); err != nil {
log.Printf("template error: %v", err)
http.Error(w, "internal server error", http.StatusInternalServerError)
}
}