feat(api): add endpoint to fetch guest list
* implement ListGuests method in store * create handleGuestList function in API * add GuestListEntry and GuestList interfaces in UI * create guest list page to display RSVPs
This commit is contained in:
@@ -78,6 +78,30 @@ type RSVP struct {
|
||||
Message string
|
||||
}
|
||||
|
||||
// ListGuests returns every RSVP'd guest, ordered by submission then entry order.
|
||||
func (s *Store) ListGuests() ([]Guest, error) {
|
||||
rows, err := s.db.Query(
|
||||
`SELECT g.name, g.is_child
|
||||
FROM rsvp_guests g
|
||||
JOIN rsvps r ON r.id = g.rsvp_id
|
||||
ORDER BY r.created_at ASC, g.id ASC`,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var guests []Guest
|
||||
for rows.Next() {
|
||||
var g Guest
|
||||
if err := rows.Scan(&g.Name, &g.IsChild); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
guests = append(guests, g)
|
||||
}
|
||||
return guests, rows.Err()
|
||||
}
|
||||
|
||||
func (s *Store) InsertRSVP(r RSVP) error {
|
||||
tx, err := s.db.Begin()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user