@Summary Get group by ID @ID get-group-by-id @Security CoderSessionToken @Produce json @Tags Enterprise @Param group path string true "Group id" @Param exclude_members query bool false "Exclude members from the response" @Success 200 {object} codersdk.Group @Router /api/v2/groups/{group} [get]
(rw http.ResponseWriter, r *http.Request)
| 400 | // @Success 200 {object} codersdk.Group |
| 401 | // @Router /api/v2/groups/{group} [get] |
| 402 | func (api *API) group(rw http.ResponseWriter, r *http.Request) { |
| 403 | var ( |
| 404 | ctx = r.Context() |
| 405 | group = httpmw.GroupParam(r) |
| 406 | ) |
| 407 | |
| 408 | excludeMembers, _ := strconv.ParseBool(r.URL.Query().Get("exclude_members")) |
| 409 | |
| 410 | org, err := api.Database.GetOrganizationByID(ctx, group.OrganizationID) |
| 411 | if err != nil { |
| 412 | httpapi.InternalServerError(rw, err) |
| 413 | } |
| 414 | |
| 415 | users := []database.GroupMember{} |
| 416 | if !excludeMembers { |
| 417 | users, err = api.Database.GetGroupMembersByGroupID(ctx, database.GetGroupMembersByGroupIDParams{ |
| 418 | GroupID: group.ID, |
| 419 | IncludeSystem: false, |
| 420 | }) |
| 421 | if err != nil && !errors.Is(err, sql.ErrNoRows) { |
| 422 | httpapi.InternalServerError(rw, err) |
| 423 | return |
| 424 | } |
| 425 | } |
| 426 | |
| 427 | memberCount, err := api.Database.GetGroupMembersCountByGroupID(ctx, database.GetGroupMembersCountByGroupIDParams{ |
| 428 | GroupID: group.ID, |
| 429 | IncludeSystem: false, |
| 430 | }) |
| 431 | if err != nil { |
| 432 | httpapi.InternalServerError(rw, err) |
| 433 | return |
| 434 | } |
| 435 | |
| 436 | httpapi.Write(ctx, rw, http.StatusOK, db2sdk.Group(database.GetGroupsRow{ |
| 437 | Group: group, |
| 438 | OrganizationName: org.Name, |
| 439 | OrganizationDisplayName: org.DisplayName, |
| 440 | }, users, int(memberCount))) |
| 441 | } |
| 442 | |
| 443 | // @Summary Get group members by organization and group name |
| 444 | // @ID get-group-members-by-organization-and-group-name |
no test coverage detected