Delete godoc @Security ApiKey @Summary Remove membership between org and user @Description user's role will be remove from org @Tags Member @Accept json @Produce json @Param namespace path string true "org name" @Param username path string true "user name
(ctx *gin.Context)
| 164 | // @Failure 500 {object} types.APIInternalServerError "Internal server error" |
| 165 | // @Router /organization/{namespace}/members/{username} [delete] |
| 166 | func (h *MemberHandler) Delete(ctx *gin.Context) { |
| 167 | type removeMemberRequest struct { |
| 168 | Role string `json:"role" binding:"required"` |
| 169 | } |
| 170 | req := new(removeMemberRequest) |
| 171 | if err := ctx.ShouldBindJSON(req); err != nil { |
| 172 | httpbase.BadRequest(ctx, fmt.Errorf("failed to unmarshal request body,caused by:%w", err).Error()) |
| 173 | return |
| 174 | } |
| 175 | currentUser := httpbase.GetCurrentUser(ctx) |
| 176 | org := ctx.Param("namespace") |
| 177 | userName := ctx.Param("username") |
| 178 | err := h.c.Delete(ctx, org, userName, currentUser, req.Role) |
| 179 | if err != nil { |
| 180 | slog.ErrorContext(ctx, "delete member fail", slog.Any("error", err), |
| 181 | slog.Group("request", |
| 182 | slog.String("org", org), slog.String("username", userName), slog.String("role", req.Role), slog.String("op_user", currentUser), |
| 183 | ), |
| 184 | ) |
| 185 | httpbase.ServerError(ctx, err) |
| 186 | return |
| 187 | } |
| 188 | |
| 189 | httpbase.OK(ctx, nil) |
| 190 | } |
| 191 | |
| 192 | // GetMemberRole godoc |
| 193 | // @Security ApiKey |
nothing calls this directly
no test coverage detected