import { Component, OnInit, inject, signal } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ApiService } from '../../core/services/api.service'; @Component({ selector: 'app-ssl', standalone: true, imports: [CommonModule], template: `

SSL Certificates

@if (certificates().length > 0) {
@for (cert of certificates(); track cert.domain) { }
Domain Issuer Expiry Actions
{{ cert.domain }} {{ cert.issuer }} {{ formatDate(cert.expiryDate) }}
} @else {

No SSL certificates

Certificates are obtained automatically when deploying services with domains

}
`, }) export class SslComponent implements OnInit { private apiService = inject(ApiService); certificates = signal([]); ngOnInit(): void { this.loadCertificates(); } loadCertificates(): void { this.apiService.getSslCertificates().subscribe({ next: (response) => { if (response.success && response.data) { this.certificates.set(response.data); } }, }); } renewCertificate(cert: any): void { this.apiService.renewSslCertificate(cert.domain).subscribe({ next: () => { alert('Certificate renewal initiated'); this.loadCertificates(); }, }); } formatDate(timestamp: number): string { return new Date(timestamp).toLocaleDateString(); } isExpiringSoon(timestamp: number): boolean { const thirtyDays = 30 * 24 * 60 * 60 * 1000; return timestamp - Date.now() < thirtyDays; } }