import { OpenFlareBaseService } from './base.service'; import type { AcmeAccountItem, TlsCertificateApplyPayload, TlsCertificateContentItem, TlsCertificateDetailItem, TlsCertificateFileImportPayload, TlsCertificateItem, TlsCertificateMutationPayload, } from './types'; class AcmeAccountApi extends OpenFlareBaseService { protected static override readonly basePath: string = '/api/v1/d/acme-accounts'; static getDefault(): Promise { return this.get('/default'); } } export class TlsCertificateService extends OpenFlareBaseService { protected static override readonly basePath: string = '/api/v1/d/tls-certificates'; static async list(): Promise { return this.get('/'); } static async getById(id: number): Promise { return this.get(`/${id}`); } static async getContent(id: number): Promise { return this.get(`/${id}/content`); } static async create( payload: TlsCertificateMutationPayload, ): Promise { return this.post('/', payload); } static async update( id: number, payload: TlsCertificateMutationPayload, ): Promise { return this.post(`/${id}/update`, payload); } static async deleteById(id: number): Promise { return this.post(`/${id}/delete`); } static async apply( payload: TlsCertificateApplyPayload, ): Promise { return this.post('/apply', payload); } static async renew(id: number): Promise { return this.post(`/${id}/renew`); } static async updateAcme( id: number, payload: TlsCertificateApplyPayload, ): Promise { return this.post(`/${id}/update-acme`, payload); } static async convertToAcme( id: number, payload: TlsCertificateApplyPayload, ): Promise { return this.post(`/${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.post('/import-file', formData); } static getDefaultAcmeAccount(): Promise { return AcmeAccountApi.getDefault(); } }