import { Injectable } from '@angular/core'; import { QueryResult } from '@common/model/query-result'; import { Guid } from '@common/types/guid'; import { NotificationTemplateKind } from '@app/core/common/enum/notification-template-kind'; import { NotificationTemplateLookup } from '@app/core/query/notification-template.lookup'; import { Observable, throwError } from 'rxjs'; import { catchError } from 'rxjs/operators'; import { NotificationTemplate, NotificationTemplatePersist } from '@app/core/model/notification-template/notification-template'; import { BaseHttpV2Service } from '../http/base-http-v2.service'; import { ConfigurationService } from '../configuration/configuration.service'; @Injectable() export class NotificationTemplateService { constructor(private http: BaseHttpV2Service, private configurationService: ConfigurationService) { } private get apiBase(): string { return `${this.configurationService.notificationServiceAddress}api/notification-template`; } query(q: NotificationTemplateLookup): Observable> { const url = `${this.apiBase}/query`; return this.http .post>(url, q).pipe( catchError((error: any) => throwError(error))); } getSingle(id: Guid, reqFields: string[] = []): Observable { const url = `${this.apiBase}/${id}`; const options = { params: { f: reqFields } }; return this.http .get(url, options).pipe( catchError((error: any) => throwError(error))); } updateKind(id: Guid, kind: NotificationTemplateKind): Observable { const url = `${this.apiBase}/${id}/${kind}`; return this.http .post(url, {}).pipe( catchError((error: any) => throwError(error))); } persist(item: NotificationTemplatePersist): Observable { const url = `${this.apiBase}/persist`; return this.http .post(url, item).pipe( catchError((error: any) => throwError(error))); } delete(id: Guid): Observable { const url = `${this.apiBase}/${id}`; return this.http .delete(url).pipe( catchError((error: any) => throwError(error))); } }