조직
orgs 묶음의 오퍼레이션 7 개입니다.
| 메서드 | 경로 | 하는 일 |
|---|---|---|
| GET | /v1/orgs | — |
| POST | /v1/orgs | 조직 생성 |
| GET | /v1/orgs/{orgSlug}/notifications | 최근 알림 (docs/limits.md §3.4) |
| GET | /v1/orgs/{orgSlug}/members | 조직 멤버 (runlot org members) |
| POST | /v1/orgs/{orgSlug}/members | 기존 사용자를 멤버로 넣는다 (runlot org add-member) |
| PUT | /v1/orgs/{orgSlug}/members/{userId} | 역할을 바꾼다 (runlot org set-role) |
| DELETE | /v1/orgs/{orgSlug}/members/{userId} | 멤버를 뺀다 (runlot org remove-member) |
GET /v1/orgs
operationId listOrgs
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 소속 조직 | object |
| 401 | — | — |
POST /v1/orgs
만든 사람이 admin 이 된다. 개인 계정도 1인 조직으로 모델링하므로
(docs/mvp-scope.md), 여기 별도 경로가 없다.
operationId createOrg
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 201 | 생성된 조직 | Org |
| 401 | — | — |
| 409 | — | — |
GET /v1/orgs/{orgSlug}/notifications
한도·백업·복원 사건의 목록이다 (notifications). 최신 순.
sentAt 이 있으면 메일도 나갔다는 뜻이다. 없는 행은 아직 큐에 있거나
받을 이메일이 없는 것인데, 후자에게는 이 목록이 유일한 통로다 — GitHub
로그인이 비공개 이메일이면 users.email 이 NULL 이다 (§3.3).
viewer 이상.
operationId listNotifications
| 인자 | 자리 | 필수 | 형 | 설명 |
|---|---|---|---|---|
limit | query | 아니오 | integer | — |
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 알림 목록 | object |
| 403 | — | — |
| 404 | — | — |
GET /v1/orgs/{orgSlug}/members
member 이상.
operationId listMembers
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 멤버 목록 | object |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/members
초대가 아니다 (docs/local-mvp.md §3 — 초대 UI 제외). 사용자는 이미
한 번 로그인해 users 에 있어야 하고, 없으면 404 user_not_found.
이미 멤버면 409 already_member — 역할을 바꾸는 것은 PUT 이다.
admin 이상. 감사 member.add.
operationId addMember
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 201 | 추가된 멤버 | Member |
| 400 | — | — |
| 403 | — | — |
| 404 | 조직이 없거나 사용자가 없다 (user_not_found) | Error |
| 409 | 이미 멤버다 (already_member) | Error |
PUT /v1/orgs/{orgSlug}/members/{userId}
admin 이상. 마지막 admin 은 강등할 수 없다 (409 last_admin) —
자기 자신도 포함이다. 그 규칙이 없으면 조직이 아무도 관리할 수 없는
상태에 빠지고, 거기서 나오는 길은 DB 를 직접 고치는 것뿐이다.
감사 member.role.
operationId setMemberRole
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 바뀐 멤버 | Member |
| 400 | — | — |
| 403 | — | — |
| 404 | — | — |
| 409 | 마지막 admin 이다 (last_admin) | Error |
DELETE /v1/orgs/{orgSlug}/members/{userId}
admin 이상. 마지막 admin 은 뺄 수 없다 (409 last_admin). 감사
member.remove.
operationId removeMember
| 응답 | 뜻 | 본문 |
|---|---|---|
| 204 | 뺐다 | — |
| 403 | — | — |
| 404 | — | — |
| 409 | 마지막 admin 이다 (last_admin) | Error |