import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { ApiConfigService } from '../../../core/services/api-config.service'; import { SiteSettingDto, UpdateSiteSettingRequest, NotificationSettingDto, UpdateNotificationSettingRequest, TestEmailRequest, TestLineRequest, NotificationResult, } from '../models/settings.model'; @Injectable({ providedIn: 'root' }) export class SettingsApiService { private readonly endpoint: string; constructor(private http: HttpClient, apiConfig: ApiConfigService) { this.endpoint = apiConfig.getApiUrl('settings'); } getSite(): Observable { return this.http.get(`${this.endpoint}/site`); } updateSite(request: UpdateSiteSettingRequest): Observable { return this.http.put(`${this.endpoint}/site`, request); } getNotification(): Observable { return this.http.get(`${this.endpoint}/notification`); } updateNotification(request: UpdateNotificationSettingRequest): Observable { return this.http.put(`${this.endpoint}/notification`, request); } testEmail(request: TestEmailRequest): Observable { return this.http.post(`${this.endpoint}/notification/test-email`, request); } testLine(request: TestLineRequest): Observable { return this.http.post(`${this.endpoint}/notification/test-line`, request); } }