diff --git a/src/services/genres/genres.service.spec.ts b/src/services/genres/genres.service.spec.ts new file mode 100644 index 0000000..8d71cf8 --- /dev/null +++ b/src/services/genres/genres.service.spec.ts @@ -0,0 +1,16 @@ +import {TestBed} from '@angular/core/testing'; + +import {GenresService} from './genres.service'; + +describe('GenresService', () => { + let service: GenresService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(GenresService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/services/genres/genres.service.ts b/src/services/genres/genres.service.ts new file mode 100644 index 0000000..251d305 --- /dev/null +++ b/src/services/genres/genres.service.ts @@ -0,0 +1,40 @@ +import {inject, Injectable} from '@angular/core'; +import {HttpClient} from '@angular/common/http'; +import {Observable} from 'rxjs'; +import {ApiResponse} from '../../interfaces/api-response'; +import {ApiIdResponse} from '../../interfaces/api-id-response'; +import {Show} from '../../interfaces/show'; +import {ApiCreationResponse} from '../../interfaces/api-creation-response'; +import {ApiDeletionEditResponse} from '../../interfaces/api-deletion-edit-response'; + +@Injectable({ + providedIn: 'root' +}) +export class GenresService { + + private readonly url: string = "https://shows.everest.tailscale/api/"; + private genresEndpoint: string + private idEndpoint: string + private http: HttpClient = inject(HttpClient); + + constructor() { + this.genresEndpoint = this.url + "genres/" + this.idEndpoint = this.genresEndpoint + "id/" + } + + getGenres(): Observable { + return this.http.get(this.genresEndpoint) + } + + getGenre(id: string): Observable { + return this.http.get(this.idEndpoint + id) + } + + sendGenre(newShow: Show): Observable { + return this.http.post(this.genresEndpoint, newShow) + } + + updateGenre(show: Show): Observable { + return this.http.put(this.idEndpoint + show._id, show) + } +}