/** * @copyright 2026 NHCarrigan * @license Naomi's Public License * @author Naomi Carrigan */ import { Injectable, inject } from '@angular/core'; import { Observable } from 'rxjs'; import { ApiService } from './api.service'; import { Book, CreateBookDto, UpdateBookDto } from '@library/shared-types'; @Injectable({ providedIn: 'root' }) export class BooksService { private api = inject(ApiService); getAllBooks(): Observable { return this.api.get('/books'); } getBookById(id: string): Observable { return this.api.get(`/books/${id}`); } createBook(book: CreateBookDto): Observable { return this.api.post('/books', book); } updateBook(id: string, book: UpdateBookDto): Observable { return this.api.put(`/books/${id}`, book); } deleteBook(id: string): Observable<{ success: boolean }> { return this.api.delete<{ success: boolean }>(`/books/${id}`); } }