Ho tre risorse Hotel
, Address
e Image
. Un hotel può avere immagini maggio ma solo un indirizzo. Mentre mostro i dettagli dell'hotel ho bisogno di recuperare il suo indirizzo e tutte le immagini di esso così, nel mio controller il seguente codice va:
function getHotel(req, res) {
const { hotelId, merchantId } = req.params;
Hotel.search(req, [['id', '=', hotelId], ['merchant_id', '=', merchantId]])
.then(function then_(hotel) {
Hotel.searchAddress(req, hotelId).then(function then_(address) {
hotel.address = address;
Hotel.searchImages(req, hotelId).then(function (images) {
hotel.images = images;
res.status(200).json({ hotel });
});
});
}).catch(function catch_(err) {
console.log(err);
res.status(500).send();
});
}
Si può vedere che le query SQL
sono all'interno dei metodi delle classi statiche ma la preoccupazione più dolorosa è che il codice mi sembra procedurale. So che esiste un pattern Repository
ma non l'ho ancora usato molto. Come posso rendere il codice dato più OOP e flessibile?