From 27311bb00b6f5c962eb8527e6467dd8194b99b5d Mon Sep 17 00:00:00 2001 From: didier amyot Date: Fri, 13 Oct 2023 13:30:41 -0400 Subject: [PATCH] boom --- src/library_server.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/library_server.ts b/src/library_server.ts index a5524ec..d998f83 100644 --- a/src/library_server.ts +++ b/src/library_server.ts @@ -16,6 +16,10 @@ export type Book = { publicationYear: number, } +type BookQuery = { + author?: string +} + const library_server : Book[] = []; function bookAlreadyExists(book: Book, library: Book[]): boolean{ @@ -44,14 +48,24 @@ function getBookByIsbn(isbn: string, library: Book[]): Book | null { return null; } +function matches(book: Book, query: BookQuery){ + if(!query.author){ + return true; + } + return book.author === query.author; +} + app.get("/ping", (req: Request, res: Response): void => { res.send("pongi"); }) app.get("/books", (req: Request, res: Response): void => { const books = []; + const query = req.query as BookQuery; for(const book of library_server){ - books.push({isbn: book.isbn}); + if(matches(book, query)){ + books.push({isbn: book.isbn}); + } } const ret = { "books": books @@ -86,4 +100,6 @@ app.post("/books", (req: Request, res: Response): void => { const port = 3000 app.listen(port, (): void => { console.log(`Example app listening on port ${port}`) -}) \ No newline at end of file +}) + +