import {LegacyOpenFlareBaseService} from './legacy-base.service'; import type { AcmeAccountItem, TlsCertificateApplyPayload, TlsCertificateContentItem, TlsCertificateDetailItem, TlsCertificateFileImportPayload, TlsCertificateItem, TlsCertificateMutationPayload, } from './types'; class AcmeAccountApi extends LegacyOpenFlareBaseService { protected static readonly basePath = '/api/acme-accounts'; static getDefault(): Promise { return this.legacyGet('/default'); } } export class TlsCertificateService extends LegacyOpenFlareBaseService { protected static readonly basePath = '/api/tls-certificates'; static async list(): Promise { return this.legacyGet('/'); } static async getById(id: number): Promise { return this.legacyGet(`/${id}`); } static async getContent(id: number): Promise { return this.legacyGet(`/${id}/content`); } static async create( payload: TlsCertificateMutationPayload, ): Promise { return this.legacyPost('/', payload); } static async update( id: number, payload: TlsCertificateMutationPayload, ): Promise { return this.legacyPost(`/${id}/update`, payload); } static async delete(id: number): Promise { return this.legacyPost(`/${id}/delete`); } static async apply( payload: TlsCertificateApplyPayload, ): Promise { return this.legacyPost('/apply', payload); } static async renew(id: number): Promise { return this.legacyPost(`/${id}/renew`); } static async updateAcme( id: number, payload: TlsCertificateApplyPayload, ): Promise { return this.legacyPost(`/${id}/update-acme`, payload); } static async convertToAcme( id: number, payload: TlsCertificateApplyPayload, ): Promise { return this.legacyPost(`/${id}/convert-acme`, payload); } static async importFile( payload: TlsCertificateFileImportPayload, ): Promise { const formData = new FormData(); formData.append('name', payload.name); formData.append('remark', payload.remark); formData.append('cert_file', payload.certFile); formData.append('key_file', payload.keyFile); return this.legacyPost('/import-file', formData); } static getDefaultAcmeAccount(): Promise { return AcmeAccountApi.getDefault(); } }