import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { GitConnectRequest, GitStatusResponse, PublishResponse } from '../models/deployment'; @Injectable({ providedIn: 'root' }) export class DeploymentService { constructor(private http: HttpClient) {} exportSite(siteId: string): Observable { return this.http.get(`/api/sites/${siteId}/export`, { responseType: 'blob' }); } getGitStatus(siteId: string): Observable { return this.http.get(`/api/sites/${siteId}/git/status`); } connectGit(siteId: string, request: GitConnectRequest): Observable> { return this.http.post>(`/api/sites/${siteId}/git/connect`, request); } disconnectGit(siteId: string): Observable> { return this.http.post>(`/api/sites/${siteId}/git/disconnect`, {}); } publish(siteId: string): Observable { return this.http.post(`/api/sites/${siteId}/publish`, {}); } unpublish(siteId: string): Observable> { return this.http.post>(`/api/sites/${siteId}/unpublish`, {}); } }