define endpoints as constants

This commit is contained in:
Mike Mason
2023-07-21 18:44:48 +00:00
parent 1bd86d3ec9
commit b421163ae2
4 changed files with 18 additions and 10 deletions

View File

@@ -27,7 +27,7 @@ type roleAssignmentData struct {
// 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 {
path := fmt.Sprintf("/api/v1/roles/%s/assignments", roleID.String())
path := fmt.Sprintf(permsPathRoleAssignmentsFormat, roleID.String())
body, err := encodeJSON(RoleAssign{
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.
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{
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.
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

View File

@@ -17,9 +17,17 @@ import (
)
const (
defaultPermissionsURL = "https://permissions-api.hollow-a.sv15.metalkube.net"
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.

View File

@@ -34,7 +34,7 @@ type ResourceRelationshipDeleteResponse struct {
// 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 {
path := fmt.Sprintf("/api/v1/resources/%s/relationships", resourceID.String())
path := fmt.Sprintf(permsPathResourceRelationshipsFormat, resourceID.String())
body, err := encodeJSON(ResourceRelationshipRequest{
Relation: relation,
@@ -63,7 +63,7 @@ func (c *client) ListResourceRelationshipsFrom(ctx context.Context, resourceID g
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
}
@@ -90,7 +90,7 @@ func (c *client) ListResourceRelationshipsTo(ctx context.Context, resourceID gid
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
}

View File

@@ -35,7 +35,7 @@ type ResourceRole struct {
// 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) {
path := fmt.Sprintf("/api/v1/resources/%s/roles", resourceID.String())
path := fmt.Sprintf(permsPathResourceRolesFormat, resourceID.String())
body, err := encodeJSON(ResourceRoleCreate{
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.
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 {
Data ResourceRoles `json:"data"`