import { BaseClient } from "../client/baseClient"; import { CertificateEnrollmentRequest, CertificateEnrollmentResponse, CertificateEnrollmentStatusResponse, CertificateLimitsResponse, CertificateRevokeRequest, CertificatesQueryRequest, CertificatesQueryResponse, CertificatesRetrieveRequest, CertificatesRetrieveResponse, } from "../types/certificates"; export class CertificatesClient extends BaseClient { async getCertificateLimits(): Promise { const token = await this.getAccessToken(); return this.http.request({ method: "GET", path: "/certificates/limits", authToken: token, }); } async getEnrollmentData(): Promise> { const token = await this.getAccessToken(); return this.http.request>({ method: "GET", path: "/certificates/enrollments/data", authToken: token, }); } async createEnrollment( request: CertificateEnrollmentRequest, ): Promise { const token = await this.getAccessToken(); return this.http.request({ method: "POST", path: "/certificates/enrollments", body: request, authToken: token, }); } async getEnrollmentStatus(referenceNumber: string): Promise { const token = await this.getAccessToken(); return this.http.request({ method: "GET", path: `/certificates/enrollments/${encodeURIComponent(referenceNumber)}`, authToken: token, }); } async queryCertificates( request: CertificatesQueryRequest, pageOffset?: number, pageSize?: number, ): Promise { const token = await this.getAccessToken(); const query = pageOffset !== undefined || pageSize !== undefined ? { pageOffset, pageSize } : undefined; return this.http.request({ method: "POST", path: "/certificates/query", ...(query ? { query } : {}), body: request, authToken: token, }); } async retrieveCertificates( request: CertificatesRetrieveRequest, ): Promise { const token = await this.getAccessToken(); return this.http.request({ method: "POST", path: "/certificates/retrieve", body: request, authToken: token, }); } async revokeCertificate( certificateSerialNumber: string, request?: CertificateRevokeRequest, ): Promise { const token = await this.getAccessToken(); await this.http.request({ method: "POST", path: `/certificates/${encodeURIComponent(certificateSerialNumber)}/revoke`, body: request ?? {}, authToken: token, }); } }