Documentation
¶
Index ¶
- func AddMember(groupID, userID string) error
- func DeleteGroup(id string) error
- func GroupNamesByUserID(userID string) ([]string, error)
- func HandleAddMember(w http.ResponseWriter, r *http.Request)
- func HandleCreateGroup(w http.ResponseWriter, r *http.Request)
- func HandleDeleteGroup(w http.ResponseWriter, r *http.Request)
- func HandleGetGroup(w http.ResponseWriter, r *http.Request)
- func HandleGetUserGroups(w http.ResponseWriter, r *http.Request)
- func HandleListGroups(w http.ResponseWriter, r *http.Request)
- func HandleListMembers(w http.ResponseWriter, r *http.Request)
- func HandleRemoveMember(w http.ResponseWriter, r *http.Request)
- func HandleUpdateGroup(w http.ResponseWriter, r *http.Request)
- func RemoveMember(groupID, userID string) error
- func UpdateGroup(id string, req GroupUpdateRequest) error
- func ValidateGroupCreateRequest(input GroupCreateRequest) error
- func ValidateGroupUpdateRequest(input GroupUpdateRequest) error
- type Group
- type GroupCreateRequest
- type GroupMemberRequest
- type GroupMemberResponse
- type GroupResponse
- type GroupUpdateRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteGroup ¶
func GroupNamesByUserID ¶
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 admin-groups @Accept json @Produce json @Param id path string true "Group ID" @Param member body GroupMemberRequest true "Member payload" @Security AdminAuth @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 admin-groups @Accept json @Produce json @Param group body GroupCreateRequest true "Group creation payload" @Security AdminAuth @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 admin-groups @Produce json @Param id path string true "Group ID" @Security AdminAuth @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 admin-groups @Produce json @Param id path string true "Group ID" @Security AdminAuth @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 admin-groups @Produce json @Param id path string true "User ID" @Security AdminAuth @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 admin-groups @Produce json @Security AdminAuth @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 admin-groups @Produce json @Param id path string true "Group ID" @Security AdminAuth @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 admin-groups @Produce json @Param id path string true "Group ID" @Param user_id path string true "User ID" @Security AdminAuth @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 admin-groups @Accept json @Produce json @Param id path string true "Group ID" @Param group body GroupUpdateRequest true "Group update payload" @Security AdminAuth @Success 200 {object} GroupResponse @Failure 400 {object} model.ApiError @Failure 404 {object} model.ApiError @Router /admin/api/groups/{id} [put]
func RemoveMember ¶
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 GroupByName ¶
func (*Group) ToResponse ¶
func (g *Group) ToResponse() GroupResponse
type GroupCreateRequest ¶
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)