handle unassignment of role

This commit is contained in:
Mike Mason
2023-07-11 22:26:16 +00:00
parent 11fe8f8f2a
commit 2147f0374b
11 changed files with 403 additions and 162 deletions

View File

@@ -17,6 +17,10 @@ type ResourceRoleCreateResponse struct {
ID string `json:"id"`
}
type ResourceRoleDeleteResponse struct {
Success bool `json:"success"`
}
type ResourceRoles []ResourceRole
type ResourceRole struct {
@@ -48,6 +52,22 @@ func (c *Client) CreateRole(ctx context.Context, resourceID gidx.PrefixedID, act
return roleID, nil
}
func (c *Client) DeleteRole(ctx context.Context, roleID gidx.PrefixedID) error {
path := fmt.Sprintf("/api/v1/roles/%s", roleID.String())
var response ResourceRoleDeleteResponse
if _, err := c.DoRequest(ctx, http.MethodDelete, path, nil, &response); err != nil {
return err
}
if !response.Success {
return ErrUnexpectedRoleDeleteFailed
}
return nil
}
func (c *Client) ListResourceRoles(ctx context.Context, resourceID gidx.PrefixedID) (ResourceRoles, error) {
path := fmt.Sprintf("/api/v1/resources/%s/roles", resourceID.String())