group

package
v1.6.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2026 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddMember

func AddMember(groupID, userID string) error

func DeleteGroup

func DeleteGroup(id string) error

func GroupNamesByUserID

func GroupNamesByUserID(userID string) ([]string, error)

GroupNamesByUserID returns just the group name strings for a user. Used for embedding in token claims and userinfo responses.

func HandleAddMember

func HandleAddMember(w http.ResponseWriter, r *http.Request)

HandleAddMember godoc @Summary Add a user to a group @Tags groups-admin @Accept json @Produce json @Param id path string true "Group ID" @Param member body GroupMemberRequest true "Member payload" @Security BearerAuth @Success 201 {object} map[string]string @Failure 400 {object} model.ApiError @Failure 409 {object} model.ApiError @Router /admin/api/groups/{id}/members [post]

func HandleCreateGroup

func HandleCreateGroup(w http.ResponseWriter, r *http.Request)

HandleCreateGroup godoc @Summary Create a new group @Tags groups-admin @Accept json @Produce json @Param group body GroupCreateRequest true "Group creation payload" @Security BearerAuth @Success 201 {object} GroupResponse @Failure 400 {object} model.ApiError @Router /admin/api/groups [post]

func HandleDeleteGroup

func HandleDeleteGroup(w http.ResponseWriter, r *http.Request)

HandleDeleteGroup godoc @Summary Delete a group @Tags groups-admin @Produce json @Param id path string true "Group ID" @Security BearerAuth @Success 200 {object} map[string]string @Failure 404 {object} model.ApiError @Router /admin/api/groups/{id} [delete]

func HandleGetGroup

func HandleGetGroup(w http.ResponseWriter, r *http.Request)

HandleGetGroup godoc @Summary Get a group by ID @Tags groups-admin @Produce json @Param id path string true "Group ID" @Security BearerAuth @Success 200 {object} GroupResponse @Failure 404 {object} model.ApiError @Router /admin/api/groups/{id} [get]

func HandleGetUserGroups

func HandleGetUserGroups(w http.ResponseWriter, r *http.Request)

HandleGetUserGroups godoc @Summary Get groups for a user @Tags groups-admin @Produce json @Param id path string true "User ID" @Security BearerAuth @Success 200 {array} GroupResponse @Router /admin/api/users/{id}/groups [get]

func HandleListGroups

func HandleListGroups(w http.ResponseWriter, r *http.Request)

HandleListGroups godoc @Summary List all groups @Tags groups-admin @Produce json @Security BearerAuth @Success 200 {array} GroupResponse @Router /admin/api/groups [get]

func HandleListMembers

func HandleListMembers(w http.ResponseWriter, r *http.Request)

HandleListMembers godoc @Summary List members of a group @Tags groups-admin @Produce json @Param id path string true "Group ID" @Security BearerAuth @Success 200 {array} GroupMemberResponse @Router /admin/api/groups/{id}/members [get]

func HandleRemoveMember

func HandleRemoveMember(w http.ResponseWriter, r *http.Request)

HandleRemoveMember godoc @Summary Remove a user from a group @Tags groups-admin @Produce json @Param id path string true "Group ID" @Param user_id path string true "User ID" @Security BearerAuth @Success 200 {object} map[string]string @Failure 404 {object} model.ApiError @Router /admin/api/groups/{id}/members/{user_id} [delete]

func HandleUpdateGroup

func HandleUpdateGroup(w http.ResponseWriter, r *http.Request)

HandleUpdateGroup godoc @Summary Update a group @Tags groups-admin @Accept json @Produce json @Param id path string true "Group ID" @Param group body GroupUpdateRequest true "Group update payload" @Security BearerAuth @Success 200 {object} GroupResponse @Failure 400 {object} model.ApiError @Failure 404 {object} model.ApiError @Router /admin/api/groups/{id} [put]

func RemoveMember

func RemoveMember(groupID, userID string) error

func UpdateGroup

func UpdateGroup(id string, req GroupUpdateRequest) error

func ValidateGroupCreateRequest

func ValidateGroupCreateRequest(input GroupCreateRequest) error

func ValidateGroupUpdateRequest

func ValidateGroupUpdateRequest(input GroupUpdateRequest) error

Types

type Group

type Group struct {
	ID          string
	Name        string
	Description string
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

func GroupByID

func GroupByID(id string) (*Group, error)

func GroupByName

func GroupByName(name string) (*Group, error)

func (*Group) ToResponse

func (g *Group) ToResponse() GroupResponse

type GroupCreateRequest

type GroupCreateRequest struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
}

type GroupMemberRequest

type GroupMemberRequest struct {
	UserID string `json:"user_id"`
}

type GroupMemberResponse

type GroupMemberResponse struct {
	UserID    string    `json:"user_id"`
	Username  string    `json:"username"`
	Email     string    `json:"email"`
	CreatedAt time.Time `json:"created_at"`
}

func MembersByGroupID

func MembersByGroupID(groupID string) ([]GroupMemberResponse, error)

type GroupResponse

type GroupResponse struct {
	ID          string    `json:"id"`
	Name        string    `json:"name"`
	Description string    `json:"description"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
}

func CreateGroup

func CreateGroup(name, description string) (*GroupResponse, error)

func GroupsByUserID

func GroupsByUserID(userID string) ([]GroupResponse, error)

func ListGroups

func ListGroups() ([]GroupResponse, error)

type GroupUpdateRequest

type GroupUpdateRequest struct {
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL