feat: dedicated settings page for space

This commit is contained in:
juancwu 2026-02-07 19:16:16 -05:00
commit 1b5c57704e
No known key found for this signature in database
9 changed files with 516 additions and 0 deletions

View file

@ -94,6 +94,19 @@ func (s *InviteService) AcceptInvite(token, userID string) (string, error) {
return invite.SpaceID, s.inviteRepo.UpdateStatus(token, model.InvitationStatusAccepted)
}
func (s *InviteService) CancelInvite(token string) error {
invite, err := s.inviteRepo.GetByToken(token)
if err != nil {
return err
}
if invite.Status != model.InvitationStatusPending {
return errors.New("invitation is not pending")
}
return s.inviteRepo.Delete(token)
}
func (s *InviteService) GetPendingInvites(spaceID string) ([]*model.SpaceInvitation, error) {
// Filter for pending only in memory or repo?
// Repo returns all.

View file

@ -88,3 +88,25 @@ func (s *SpaceService) IsMember(userID, spaceID string) (bool, error) {
}
return isMember, nil
}
// GetMembers returns all members of a space with their profile info.
func (s *SpaceService) GetMembers(spaceID string) ([]*model.SpaceMemberWithProfile, error) {
members, err := s.spaceRepo.GetMembers(spaceID)
if err != nil {
return nil, fmt.Errorf("failed to get members: %w", err)
}
return members, nil
}
// RemoveMember removes a member from a space.
func (s *SpaceService) RemoveMember(spaceID, userID string) error {
return s.spaceRepo.RemoveMember(spaceID, userID)
}
// UpdateSpaceName updates the name of a space.
func (s *SpaceService) UpdateSpaceName(spaceID, name string) error {
if name == "" {
return fmt.Errorf("space name cannot be empty")
}
return s.spaceRepo.UpdateName(spaceID, name)
}