‫Istruttore: Quindi, negli ultimi
‫due video, abbiamo creato un endpoint POST
‫annidato per creare nuove recensioni su un determinato tour.
‫Quindi, ora costruiamo su
‫questo e creiamo anche un endpoint GET nidificato.
‫Quindi abbiamo già implementato la nostra
‫funzione di gestione getAllReviews, giusto?
‫Ma in questo momento, tutto ciò che fa è sostanzialmente ottenere
‫una serie di tutte le recensioni nella raccolta di recensioni.
‫Ora, un caso d'uso comune per la tua
‫API potrebbe essere quello di ottenere una serie di
‫tutte le recensioni di un particolare
‫tour, quindi molto simile a createReview, giusto?
‫Quindi sostanzialmente simile a questo percorso qui,
‫ma tranne che con GET.
‫Quindi, in pratica qualcosa del genere, ok?
‫Quindi, tutto ciò che dobbiamo fare per
‫implementare questo è apportare alcune
‫semplici modifiche alla nostra funzione di gestione getAllReviews, giusto?
‫Perché in questo momento, grazie ai parametri
‫di unione e a questo tipo di reindirizzamento che abbiamo implementato qui
‫nell'ultimo video, quindi grazie a tutto ciò, questa
‫funzione del gestore getAllReviews verrà ora chiamata automaticamente ogni
‫volta che c'è una richiesta GET
‫per un URL che sembra
‫in questo modo, e avrà anche accesso
‫al tourId, e ancora, grazie a mergeParams impostato su true.
‫Tutto ok?
‫Quindi facciamo solo alcune semplici modifiche qui, va bene?
‫E quello che faremo
‫qui è controllare se c'è un tourId, e se ce
‫n'è uno, beh, allora cercheremo solo
‫recensioni in cui il tour è uguale a quel tourId, ok?
‫Quindi, è qualcosa
‫che è molto semplice da implementare usando find, giusto?
‫Quindi, in pratica, quello che stiamo facendo è qualcosa del genere.
‫Quindi, se c'è richiesta. parametri. tourId, quindi
‫vogliamo creare un oggetto filtro,
‫che utilizzeremo in seguito proprio qui.
‫Mettiamolo qui subito, e abbiamo
‫anche bisogno di inizializzarlo.
‫Quindi, lasciamo filtrare, perché vogliamo quindi mutare questo, ok?
‫Quindi, se c'è un tourId, allora questo filtro dovrebbe
‫essere uguale a tour:
‫req. parametri. tourId.
‫Ok, e quindi, di nuovo, se c'è un tourId,
‫allora in pratica questo oggetto qui è ciò che sarà qui.
‫E quindi verranno trovate solo
‫le recensioni in cui il tour corrisponde all'ID.
‫Quindi, se è tutta una normale chiamata
‫API senza route nidificata, allora quel filtro sarà semplicemente
‫questo oggetto vuoto, quindi troveremo tutte le recensioni, ok?
‫E quindi, proviamolo, perché
‫questo è tutto ciò che dobbiamo cambiare qui, va bene?
‫Allora, salviamo
‫questo, anche questo, va bene?
‫E quindi, per iniziare, testiamo se il
‫nostro getAllReviews, quindi quello normale, funziona ancora come previsto, ok?
‫Quindi otteniamo tutte e quattro le recensioni che sono nella nostra collezione.
‫Verifichiamolo e
‫in effetti ci sono quattro documenti, ok?
‫Ma ora,
‫creiamo effettivamente il nostro percorso getAllReviews nidificato, ok?
‫Quindi, quello che farò è copiare questo.
‫Ok, e poi aggiungi semplicemente le recensioni, ok?
‫E quindi questo tour è il City Wanderer, e
‫in realtà ha una recensione.
‫E quindi, ora ci aspettiamo di ottenere
‫un array con un oggetto lì dentro, ok?
‫Quindi, aveva solo una recensione.
‫E infatti, questo è esattamente ciò che otteniamo.
‫Quindi queste sono tutte le recensioni presenti in questo tour, quindi
‫il tour con questo ID.
‫E, in realtà, è abbastanza corretto, giusto?
‫Proviamone un altro, e ricordo che questo, quindi il Forest
‫Hiker, in realtà ha avuto due recensioni.
‫Quindi vediamo se funziona anche così.
‫E quindi sì, davvero.
‫Qui ci sono.
‫Tutto ok?
‫Quindi salviamolo, ancora in quella cartella tour/recensioni, e
‫quindi getAllReviews in tour.
‫Ok, fantastico.
‫In realtà è tutto ciò che avevo da mostrarti sui percorsi nidificati.
‫Quindi, continuiamo a riempire il nostro controller di revisione,
‫perché in questo momento abbiamo solo
‫getAllReviews e createReview.
‫E quindi vogliamo anche
‫aggiornare, eliminare e tutto il resto,
‫quindi ce ne occuperemo nella prossima lezione.