added rows close, get group members route
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/google/uuid"
|
||||
"log"
|
||||
@@ -66,3 +67,29 @@ func AddMemberToGroup(c *fiber.Ctx) error {
|
||||
log.Println("Successfully added member to group")
|
||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{"message": "Successfully added member to group"})
|
||||
}
|
||||
|
||||
func GetMembers(c *fiber.Ctx) error {
|
||||
type params struct {
|
||||
GroupID uuid.UUID `params:"groupID"`
|
||||
}
|
||||
var p params
|
||||
|
||||
if err := c.ParamsParser(&p); err != nil {
|
||||
return helpers.NewError(helpers.ErrInvalidInput, "Invalid params", err)
|
||||
}
|
||||
|
||||
isMember, err := database.IsMember(database.DB, p.GroupID, c.Locals("userID").(uuid.UUID))
|
||||
if err != nil {
|
||||
return helpers.NewError(helpers.ErrInternal, "Failed to get members", fmt.Errorf("failed to check if user is a member: %w", err))
|
||||
}
|
||||
if !isMember {
|
||||
return helpers.NewError(helpers.ErrForbidden, "You are not a member of this group", nil)
|
||||
}
|
||||
|
||||
members, err := database.GetMembers(database.DB, p.GroupID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{"members": members})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user