/** * Copyright since 2025 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /** Angular Imports */ import { Injectable, inject } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; /** rxjs Imports */ import { Observable } from 'rxjs'; /** * Templates service. */ @Injectable({ providedIn: 'root' }) export class TemplatesService { private http = inject(HttpClient); /** * @returns {Observable} Templates data */ getTemplates(): Observable { return this.http.get('/templates'); } /** * @param templateId Template ID. * @returns {Observable} Fetches Template. */ getTemplate(templateId: string): Observable { return this.http.get(`/templates/${templateId}`); } /** * @returns {Observable}. */ getCreateTemplateData(): Observable { return this.http.get('/templates/template'); } /** * @param templateId Template Id. * @returns {Observable}. */ getEditTemplateData(templateId: string): Observable { return this.http.get(`/templates/${templateId}/template`); } /** * @param templateData Template to be created. * @param templateId Template Id. * @returns {Observable}. */ createTemplate(templateData: any): Observable { return this.http.post(`/templates`, templateData); } /** * @param templateData Templete Data to be edited. * @param templateId Template Id. * @returns {Observable}. */ updateTemplate(templateData: any, templateId: any): Observable { return this.http.put(`/templates/${templateId}`, templateData); } /** * @param templateId Template ID. * @returns {Observable} */ deleteTemplate(templateId: string): Observable { return this.http.delete(`/templates/${templateId}`); } }