import { BaseClient } from "../client/baseClient"; import { TestDataContextBlockRequest, TestDataContextBlockResponse, TestDataContextUnblockRequest, TestDataContextUnblockResponse, TestdataRequest, TestdataResponse, TestDataUpdateCertificateRequest, } from "../types/testdata"; import { requireCertificateSerialNumber } from "../utils/certificateSerial"; export class TestdataClient extends BaseClient { async enableAttachments(request: TestdataRequest): Promise { return this.post("/testdata/attachment", request); } async revokeAttachments(request: TestdataRequest): Promise { return this.post("/testdata/attachment/revoke", request); } async grantPermissions(request: TestdataRequest): Promise { return this.post("/testdata/permissions", request); } async revokePermissions(request: TestdataRequest): Promise { return this.post("/testdata/permissions/revoke", request); } async blockContext(request: TestDataContextBlockRequest): Promise { return this.post("/testdata/context/block", request); } async unblockContext( request: TestDataContextUnblockRequest, ): Promise { return this.post("/testdata/context/unblock", request); } async createPerson(request: TestdataRequest): Promise { return this.post("/testdata/person", request); } async removePerson(request: TestdataRequest): Promise { return this.post("/testdata/person/remove", request); } async createSubject(request: TestdataRequest): Promise { return this.post("/testdata/subject", request); } async removeSubject(request: TestdataRequest): Promise { return this.post("/testdata/subject/remove", request); } async updateCertificate( serialNumber: string, request: TestDataUpdateCertificateRequest, ): Promise { const validated = requireCertificateSerialNumber(serialNumber); const token = await this.getAccessToken(); await this.http.request({ method: "PUT", path: `/testdata/certificates/${encodeURIComponent(validated)}`, body: request, authToken: token, }); } private async post(path: string, body: object): Promise { const token = await this.getAccessToken(); return this.http.request({ method: "POST", path, body, authToken: token, }); } }