define endpoints as constants
This commit is contained in:
@@ -27,7 +27,7 @@ type roleAssignmentData struct {
|
|||||||
|
|
||||||
// AssignRole assigns the provided member ID to the given role ID.
|
// AssignRole assigns the provided member ID to the given role ID.
|
||||||
func (c *client) AssignRole(ctx context.Context, roleID gidx.PrefixedID, memberID gidx.PrefixedID) error {
|
func (c *client) AssignRole(ctx context.Context, roleID gidx.PrefixedID, memberID gidx.PrefixedID) error {
|
||||||
path := fmt.Sprintf("/api/v1/roles/%s/assignments", roleID.String())
|
path := fmt.Sprintf(permsPathRoleAssignmentsFormat, roleID.String())
|
||||||
|
|
||||||
body, err := encodeJSON(RoleAssign{
|
body, err := encodeJSON(RoleAssign{
|
||||||
SubjectID: memberID.String(),
|
SubjectID: memberID.String(),
|
||||||
@@ -51,7 +51,7 @@ func (c *client) AssignRole(ctx context.Context, roleID gidx.PrefixedID, memberI
|
|||||||
|
|
||||||
// UnassignRole removes the provided member ID from the given role ID.
|
// UnassignRole removes the provided member ID from the given role ID.
|
||||||
func (c *client) UnassignRole(ctx context.Context, roleID gidx.PrefixedID, memberID gidx.PrefixedID) error {
|
func (c *client) UnassignRole(ctx context.Context, roleID gidx.PrefixedID, memberID gidx.PrefixedID) error {
|
||||||
path := fmt.Sprintf("/api/v1/roles/%s/assignments", roleID.String())
|
path := fmt.Sprintf(permsPathRoleAssignmentsFormat, roleID.String())
|
||||||
|
|
||||||
body, err := encodeJSON(RoleAssign{
|
body, err := encodeJSON(RoleAssign{
|
||||||
SubjectID: memberID.String(),
|
SubjectID: memberID.String(),
|
||||||
@@ -75,7 +75,7 @@ func (c *client) UnassignRole(ctx context.Context, roleID gidx.PrefixedID, membe
|
|||||||
|
|
||||||
// ListRoleAssignments lists all assignments for the given role.
|
// ListRoleAssignments lists all assignments for the given role.
|
||||||
func (c *client) ListRoleAssignments(ctx context.Context, roleID gidx.PrefixedID) ([]gidx.PrefixedID, error) {
|
func (c *client) ListRoleAssignments(ctx context.Context, roleID gidx.PrefixedID) ([]gidx.PrefixedID, error) {
|
||||||
path := fmt.Sprintf("/api/v1/roles/%s/assignments", roleID.String())
|
path := fmt.Sprintf(permsPathRoleAssignmentsFormat, roleID.String())
|
||||||
|
|
||||||
var response roleAssignmentData
|
var response roleAssignmentData
|
||||||
|
|
||||||
|
|||||||
@@ -17,9 +17,17 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
defaultPermissionsURL = "https://permissions-api.hollow-a.sv15.metalkube.net"
|
|
||||||
|
|
||||||
defaultHTTPClientTimeout = 5 * time.Second
|
defaultHTTPClientTimeout = 5 * time.Second
|
||||||
|
|
||||||
|
defaultPermissionsURL = "https://permissions-api.hollow-a.sv15.metalkube.net"
|
||||||
|
permsPathAllow = "/api/v1/allow"
|
||||||
|
|
||||||
|
permsPathResourceRelationshipsFormat = "/api/v1/resources/%s/relationships"
|
||||||
|
permsPathResourceRelationshipsFrom = "/api/v1/relationships/from/"
|
||||||
|
permsPathResourceRelationshipsTo = "/api/v1/relationships/to/"
|
||||||
|
permsPathResourceRolesFormat = "/api/v1/resources/%s/roles"
|
||||||
|
|
||||||
|
permsPathRoleAssignmentsFormat = "/api/v1/roles/%s/assignments"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultHTTPClient is the default HTTP client for the Permissions Client.
|
// DefaultHTTPClient is the default HTTP client for the Permissions Client.
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ type ResourceRelationshipDeleteResponse struct {
|
|||||||
|
|
||||||
// DeleteResourceRelationship deletes the provided resources relationship to the given subject id.
|
// DeleteResourceRelationship deletes the provided resources relationship to the given subject id.
|
||||||
func (c *client) DeleteResourceRelationship(ctx context.Context, resourceID gidx.PrefixedID, relation string, relatedResourceID gidx.PrefixedID) error {
|
func (c *client) DeleteResourceRelationship(ctx context.Context, resourceID gidx.PrefixedID, relation string, relatedResourceID gidx.PrefixedID) error {
|
||||||
path := fmt.Sprintf("/api/v1/resources/%s/relationships", resourceID.String())
|
path := fmt.Sprintf(permsPathResourceRelationshipsFormat, resourceID.String())
|
||||||
|
|
||||||
body, err := encodeJSON(ResourceRelationshipRequest{
|
body, err := encodeJSON(ResourceRelationshipRequest{
|
||||||
Relation: relation,
|
Relation: relation,
|
||||||
@@ -63,7 +63,7 @@ func (c *client) ListResourceRelationshipsFrom(ctx context.Context, resourceID g
|
|||||||
Data []resourceRelationship `json:"data"`
|
Data []resourceRelationship `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := c.DoRequest(ctx, http.MethodGet, fmt.Sprintf("/api/v1/relationships/from/%s", resourceID.String()), nil, &response); err != nil { // nolint:bodyclose // closed by Do on json decode.
|
if _, err := c.DoRequest(ctx, http.MethodGet, permsPathResourceRelationshipsFrom+resourceID.String(), nil, &response); err != nil { // nolint:bodyclose // closed by Do on json decode.
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ func (c *client) ListResourceRelationshipsTo(ctx context.Context, resourceID gid
|
|||||||
Data []resourceRelationship `json:"data"`
|
Data []resourceRelationship `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := c.DoRequest(ctx, http.MethodGet, fmt.Sprintf("/api/v1/relationships/to/%s", resourceID.String()), nil, &response); err != nil { // nolint:bodyclose // closed by Do on json decode.
|
if _, err := c.DoRequest(ctx, http.MethodGet, permsPathResourceRelationshipsTo+resourceID.String(), nil, &response); err != nil { // nolint:bodyclose // closed by Do on json decode.
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ type ResourceRole struct {
|
|||||||
|
|
||||||
// CreateRole creates a role on the given resource id with the provided actions.
|
// CreateRole creates a role on the given resource id with the provided actions.
|
||||||
func (c *client) CreateRole(ctx context.Context, resourceID gidx.PrefixedID, actions []string) (gidx.PrefixedID, error) {
|
func (c *client) CreateRole(ctx context.Context, resourceID gidx.PrefixedID, actions []string) (gidx.PrefixedID, error) {
|
||||||
path := fmt.Sprintf("/api/v1/resources/%s/roles", resourceID.String())
|
path := fmt.Sprintf(permsPathResourceRolesFormat, resourceID.String())
|
||||||
|
|
||||||
body, err := encodeJSON(ResourceRoleCreate{
|
body, err := encodeJSON(ResourceRoleCreate{
|
||||||
Actions: actions,
|
Actions: actions,
|
||||||
@@ -77,7 +77,7 @@ func (c *client) DeleteRole(ctx context.Context, roleID gidx.PrefixedID) error {
|
|||||||
|
|
||||||
// ListResourceRoles fetches all roles assigned to the provided resource.
|
// ListResourceRoles fetches all roles assigned to the provided resource.
|
||||||
func (c *client) ListResourceRoles(ctx context.Context, resourceID gidx.PrefixedID) (ResourceRoles, error) {
|
func (c *client) ListResourceRoles(ctx context.Context, resourceID gidx.PrefixedID) (ResourceRoles, error) {
|
||||||
path := fmt.Sprintf("/api/v1/resources/%s/roles", resourceID.String())
|
path := fmt.Sprintf(permsPathResourceRolesFormat, resourceID.String())
|
||||||
|
|
||||||
var response struct {
|
var response struct {
|
||||||
Data ResourceRoles `json:"data"`
|
Data ResourceRoles `json:"data"`
|
||||||
|
|||||||
Reference in New Issue
Block a user