Fix: Made API endpoints more REST compliant

This commit is contained in:
Daniel Hougaard
2024-05-07 17:30:35 +02:00
parent 9d362b8597
commit dd43268506
4 changed files with 19 additions and 19 deletions
@@ -59,7 +59,7 @@ export const registerAccessApprovalPolicyRouter = async (server: FastifyZodProvi
}, },
onRequest: verifyAuth([AuthMode.JWT]), onRequest: verifyAuth([AuthMode.JWT]),
handler: async (req) => { handler: async (req) => {
const approvals = await server.services.accessApprovalPolicy.getAccessApprovalPolicyByProjectId({ const approvals = await server.services.accessApprovalPolicy.getAccessApprovalPolicyByProjectSlug({
actor: req.permission.type, actor: req.permission.type,
actorId: req.permission.id, actorId: req.permission.id,
actorAuthMethod: req.permission.authMethod, actorAuthMethod: req.permission.authMethod,
@@ -71,7 +71,7 @@ export const registerAccessApprovalPolicyRouter = async (server: FastifyZodProvi
}); });
server.route({ server.route({
url: "/policy-count", url: "/count",
method: "GET", method: "GET",
schema: { schema: {
querystring: z.object({ querystring: z.object({
@@ -80,14 +80,14 @@ export const registerAccessApprovalPolicyRouter = async (server: FastifyZodProvi
}), }),
response: { response: {
200: z.object({ 200: z.object({
policyCount: z.number() count: z.number()
}) })
} }
}, },
onRequest: verifyAuth([AuthMode.JWT]), onRequest: verifyAuth([AuthMode.JWT]),
handler: async (req) => { handler: async (req) => {
const { policyCount } = await server.services.accessApprovalPolicy.getAccessPolicyCountByEnvSlug({ const { count } = await server.services.accessApprovalPolicy.getAccessPolicyCountByEnvSlug({
actor: req.permission.type, actor: req.permission.type,
actorId: req.permission.id, actorId: req.permission.id,
actorAuthMethod: req.permission.authMethod, actorAuthMethod: req.permission.authMethod,
@@ -95,7 +95,7 @@ export const registerAccessApprovalPolicyRouter = async (server: FastifyZodProvi
actorOrgId: req.permission.orgId, actorOrgId: req.permission.orgId,
envSlug: req.query.envSlug envSlug: req.query.envSlug
}); });
return { policyCount }; return { count };
} }
}); });
+2 -2
View File
@@ -43,8 +43,8 @@ export const registerV1EERoutes = async (server: FastifyZodProvider) => {
prefix: "/secret-rotation-providers" prefix: "/secret-rotation-providers"
}); });
await server.register(registerAccessApprovalPolicyRouter, { prefix: "/access-approvals" }); await server.register(registerAccessApprovalPolicyRouter, { prefix: "/access-approvals/policies" });
await server.register(registerAccessApprovalRequestRouter, { prefix: "/access-approval-requests" }); await server.register(registerAccessApprovalRequestRouter, { prefix: "/access-approvals/requests" });
await server.register( await server.register(
async (dynamicSecretRouter) => { async (dynamicSecretRouter) => {
@@ -17,7 +17,7 @@ export const useCreateAccessApprovalPolicy = () => {
return useMutation<{}, {}, TCreateAccessPolicyDTO>({ return useMutation<{}, {}, TCreateAccessPolicyDTO>({
mutationFn: async ({ environment, projectSlug, approvals, approvers, name, secretPath }) => { mutationFn: async ({ environment, projectSlug, approvals, approvers, name, secretPath }) => {
const { data } = await apiRequest.post("/api/v1/access-approvals", { const { data } = await apiRequest.post("/api/v1/access-approvals/policies", {
environment, environment,
projectSlug, projectSlug,
approvals, approvals,
@@ -38,7 +38,7 @@ export const useUpdateAccessApprovalPolicy = () => {
return useMutation<{}, {}, TUpdateAccessPolicyDTO>({ return useMutation<{}, {}, TUpdateAccessPolicyDTO>({
mutationFn: async ({ id, approvers, approvals, name, secretPath }) => { mutationFn: async ({ id, approvers, approvals, name, secretPath }) => {
const { data } = await apiRequest.patch(`/api/v1/access-approvals/${id}`, { const { data } = await apiRequest.patch(`/api/v1/access-approvals/policies/${id}`, {
approvals, approvals,
approvers, approvers,
secretPath, secretPath,
@@ -57,7 +57,7 @@ export const useDeleteAccessApprovalPolicy = () => {
return useMutation<{}, {}, TDeleteSecretPolicyDTO>({ return useMutation<{}, {}, TDeleteSecretPolicyDTO>({
mutationFn: async ({ id }) => { mutationFn: async ({ id }) => {
const { data } = await apiRequest.delete(`/api/v1/access-approvals/${id}`); const { data } = await apiRequest.delete(`/api/v1/access-approvals/policies/${id}`);
return data; return data;
}, },
onSuccess: (_, { projectSlug }) => { onSuccess: (_, { projectSlug }) => {
@@ -71,7 +71,7 @@ export const useCreateAccessRequest = () => {
return useMutation<{}, {}, TCreateAccessRequestDTO>({ return useMutation<{}, {}, TCreateAccessRequestDTO>({
mutationFn: async ({ projectSlug, ...request }) => { mutationFn: async ({ projectSlug, ...request }) => {
const { data } = await apiRequest.post<TAccessApproval>( const { data } = await apiRequest.post<TAccessApproval>(
"/api/v1/access-approval-requests", "/api/v1/access-approvals/requests",
{ {
...request, ...request,
permissions: request.permissions ? packRules(request.permissions) : undefined permissions: request.permissions ? packRules(request.permissions) : undefined
@@ -106,7 +106,7 @@ export const useReviewAccessRequest = () => {
>({ >({
mutationFn: async ({ requestId, status }) => { mutationFn: async ({ requestId, status }) => {
const { data } = await apiRequest.post( const { data } = await apiRequest.post(
`/api/v1/access-approval-requests/${requestId}/review`, `/api/v1/access-approvals/requests/${requestId}/review`,
{ {
status status
} }
@@ -19,7 +19,7 @@ export const accessApprovalKeys = {
[{ workspaceId, environment }, "access-approval-policy"] as const, [{ workspaceId, environment }, "access-approval-policy"] as const,
getAccessApprovalRequests: (projectSlug: string, envSlug?: string, requestedBy?: string) => getAccessApprovalRequests: (projectSlug: string, envSlug?: string, requestedBy?: string) =>
[{ projectSlug, envSlug, requestedBy }, "access-approval-requests"] as const, [{ projectSlug, envSlug, requestedBy }, "access-approvals-requests"] as const,
getAccessApprovalRequestCount: (projectSlug: string) => getAccessApprovalRequestCount: (projectSlug: string) =>
[{ projectSlug }, "access-approval-request-count"] as const [{ projectSlug }, "access-approval-request-count"] as const
}; };
@@ -28,13 +28,13 @@ export const fetchPolicyApprovalCount = async ({
projectSlug, projectSlug,
envSlug envSlug
}: TGetAccessPolicyApprovalCountDTO) => { }: TGetAccessPolicyApprovalCountDTO) => {
const { data } = await apiRequest.get<{ policyCount: number }>( const { data } = await apiRequest.get<{ count: number }>(
"/api/v1/access-approvals/policy-count", "/api/v1/access-approvals/policies/count",
{ {
params: { projectSlug, envSlug } params: { projectSlug, envSlug }
} }
); );
return data.policyCount; return data.count;
}; };
export const useGetAccessPolicyApprovalCount = ({ export const useGetAccessPolicyApprovalCount = ({
@@ -57,7 +57,7 @@ export const useGetAccessPolicyApprovalCount = ({
const fetchApprovalPolicies = async ({ projectSlug }: TGetAccessApprovalRequestsDTO) => { const fetchApprovalPolicies = async ({ projectSlug }: TGetAccessApprovalRequestsDTO) => {
const { data } = await apiRequest.get<{ approvals: TAccessApprovalPolicy[] }>( const { data } = await apiRequest.get<{ approvals: TAccessApprovalPolicy[] }>(
"/api/v1/access-approvals", "/api/v1/access-approvals/policies",
{ params: { projectSlug } } { params: { projectSlug } }
); );
return data.approvals; return data.approvals;
@@ -69,7 +69,7 @@ const fetchApprovalRequests = async ({
authorProjectMembershipId authorProjectMembershipId
}: TGetAccessApprovalRequestsDTO) => { }: TGetAccessApprovalRequestsDTO) => {
const { data } = await apiRequest.get<{ requests: TAccessApprovalRequest[] }>( const { data } = await apiRequest.get<{ requests: TAccessApprovalRequest[] }>(
"/api/v1/access-approval-requests", "/api/v1/access-approvals/requests",
{ params: { projectSlug, envSlug, authorProjectMembershipId } } { params: { projectSlug, envSlug, authorProjectMembershipId } }
); );
@@ -90,7 +90,7 @@ const fetchApprovalRequests = async ({
const fetchAccessRequestsCount = async (projectSlug: string) => { const fetchAccessRequestsCount = async (projectSlug: string) => {
const { data } = await apiRequest.get<TAccessRequestCount>( const { data } = await apiRequest.get<TAccessRequestCount>(
"/api/v1/access-approval-requests/count", "/api/v1/access-approvals/requests/count",
{ params: { projectSlug } } { params: { projectSlug } }
); );
return data; return data;