refactor(apiv2): rewrite group member endpoints to be cleaner

This commit is contained in:
spiral
2021-10-30 18:16:18 -04:00
parent 93eef82a83
commit c7126840ed
5 changed files with 208 additions and 159 deletions

View File

@@ -89,20 +89,26 @@ GET `/members/{memberRef}/groups`
### Add Member To Groups
PUT `/members/{memberRef}/groups`
POST `/members/{memberRef}/groups/add`
::: warning
Not all HTTP implementations support PUT requests with a body. If yours does not, consider using the [Add Member To Group](#add-member-to-group) endpoint instead.
:::
Takes a list of group references as input. Returns 204 No Content on success.
### Remove Member From Groups
DELETE `/members/{memberRef}/groups`
POST `/members/{memberRef}/groups/remove`
::: warning
Not all HTTP implementations support DELETE requests with a body. If yours does not, consider using the [Remove Member From Group](#remove-member-from-group) endpoint instead.
::: tip
If you want to remove *all* groups from a member, consider using the [Overwrite Member Groups](#overwrite-member-groups) endpoint instead.
:::
Takes a list of group references as input. Returns 204 No Content on success.
### Overwrite Member Groups
POST `/members/{memberRef}/groups/overwrite`
Takes a list of group references as input. (An empty list is accepted.) Returns 204 No Content on success.
### Get Member Guild Settings
GET `/members/{memberRef}/guilds/{guild_id}`
@@ -164,30 +170,29 @@ Returns 204 No Content on success.
GET `/groups/{groupRef}/members`
### Add Member To Group
PUT `/groups/{groupRef}/members/{memberRef}`
Returns an array of [member objects](/api/models#member-model).
### Add Members To Group
PUT `/groups/{groupRef}/members`
POST `/groups/{groupRef}/members/add`
::: warning
Not all HTTP implementations support PUT requests with a body. If yours does not, consider using the [Add Member To Group](#add-group-member) endpoint instead.
:::
Takes an array of member references as input. Returns 204 No Content on success.
### Remove Member From Group
DELETE `/groups/{groupRef}/members/{memberRef}`
POST `/groups/{groupRef}/members/remove`
### Remove Members From Group
DELETE `/groups/{groupRef}/members`
::: warning
Not all HTTP implementations support DELETE requests with a body. If yours does not, consider using the [Remove Member From Group](#remove-member-from-group) endpoint instead.
::: tip
If you want to remove *all* members from a group, consider using the [Overwrite Group Members](#overwrite-group-members) endpoint instead.
:::
Takes an array of member references as input. Returns 204 No Content on success.
### Overwrite Group Members
POST `/groups/{groupRef}/members/overwrite`
Takes an array of member references as input. (An empty list is accepted.) Returns 204 No Content on success.
---
## Switches

View File

@@ -35,12 +35,14 @@ When something goes wrong, the API will send back a 4xx HTTP status code, along
|0|401|Missing or invalid Authorization header|
|20001|404|System not found.|
|20002|404|Member not found.|
|20003|404|Group not found.|
|20004|404|Message not found.|
|20005|404|Switch not found.|
|20005|404|Switch not found, switch associated with different system, or unauthorized to view front history.|
|20006|404|No system guild settings found for target guild.|
|20007|404|No member guild settings found for target guild.|
|20003|404|Member '{memberRef}' not found.|
|20004|404|Group not found.|
|20005|404|Group '{groupRef}' not found.|
|20006|404|Message not found.|
|20007|404|Switch not found.|
|20008|404|Switch not found, switch associated with different system, or unauthorized to view front history.|
|20009|404|No system guild settings found for target guild.|
|20010|404|No member guild settings found for target guild.|
|30001|403|Unauthorized to view member list|
|30002|403|Unauthorized to view group list|
|30003|403|Unauthorized to view group member list|
@@ -48,8 +50,8 @@ When something goes wrong, the API will send back a 4xx HTTP status code, along
|30005|403|Unauthorized to view front history.|
|30006|403|Target member is not part of your system.|
|30007|403|Target group is not part of your system.|
|30008|403|$Member '{memberRef}' is not part of your system.|
|30009|403|$Group '{groupRef}' is not part of your system.|
|30008|403|Member '{memberRef}' is not part of your system.|
|30009|403|Group '{groupRef}' is not part of your system.|
|40002|400|Missing autoproxy member for member-mode autoproxy.|
|40003|400|Duplicate members in member list.|
|40004|400|Member list identical to current fronter list.|