feat: added list support and overview page

This commit is contained in:
Sheen Capadngan
2025-02-04 02:44:59 +08:00
parent c7f80f7d9e
commit 64c2fba350
13 changed files with 263 additions and 12 deletions
+30 -2
View File
@@ -5,7 +5,13 @@ import { ActionProjectType } from "@app/db/schemas";
import { TPermissionServiceFactory } from "../permission/permission-service";
import { ProjectPermissionKmipActions, ProjectPermissionSub } from "../permission/project-permission";
import { TKmipClientDALFactory } from "./kmip-client-dal";
import { TCreateKmipClientDTO, TDeleteKmipClientDTO, TGetKmipClientDTO, TUpdateKmipClientDTO } from "./kmip-types";
import {
TCreateKmipClientDTO,
TDeleteKmipClientDTO,
TGetKmipClientDTO,
TListKmipClientsByProjectIdDTO,
TUpdateKmipClientDTO
} from "./kmip-types";
type TKmipServiceFactoryDep = {
kmipClientDAL: TKmipClientDALFactory;
@@ -123,5 +129,27 @@ export const kmipServiceFactory = ({ kmipClientDAL, permissionService }: TKmipSe
return kmipClient;
};
return { createKmipClient, updateKmipClient, deleteKmipClient, getKmipClient };
const listKmipClientsByProjectId = async ({
actor,
actorId,
actorOrgId,
actorAuthMethod,
projectId,
...rest
}: TListKmipClientsByProjectIdDTO) => {
const { permission } = await permissionService.getProjectPermission({
actor,
actorId,
projectId,
actorAuthMethod,
actorOrgId,
actionProjectType: ActionProjectType.KMS
});
ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionKmipActions.ReadClients, ProjectPermissionSub.Kmip);
return kmipClientDAL.findByProjectId({ projectId, ...rest });
};
return { createKmipClient, updateKmipClient, deleteKmipClient, getKmipClient, listKmipClientsByProjectId };
};