/** Angular Imports */ import { Injectable } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; /** rxjs Imports */ import { Observable } from 'rxjs'; /** * Templates service. */ @Injectable({ providedIn: 'root' }) export class TemplatesService { /** * @param {HttpClient} http Http Client to send requests. */ constructor(private http: 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}`); } }