From 72811382b8c563ef2757d1855c46d15091460d2b Mon Sep 17 00:00:00 2001 From: Moises Santos Date: Mon, 17 Jun 2024 22:34:05 -0300 Subject: [PATCH 01/11] =?UTF-8?q?Adi=C3=A7=C3=A3o=20de=20c=C3=B3digos=20pa?= =?UTF-8?q?ra=20Review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/user.controller.js | 57 ++++++++++++++++++++++++++++++- src/models/Review.js | 24 +++++++++++++ src/routes/user.route.js | 1 - src/services/review.service.js | 20 +++++++++++ 4 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 src/models/Review.js create mode 100644 src/services/review.service.js diff --git a/src/controller/user.controller.js b/src/controller/user.controller.js index 955b671..e25d58d 100644 --- a/src/controller/user.controller.js +++ b/src/controller/user.controller.js @@ -1,4 +1,5 @@ import userService from "../services/user.service.js"; +import userService from "../services/review.service.js"; import jwt from'jsonwebtoken'; import bcrypt from 'bcrypt'; @@ -71,4 +72,58 @@ const findByToken = async (req, res) => { } }; -export default { findById, deleteUser, updateLoggedUser, findByToken }; +const createReview = async (req, res) => { + try { + const {rating} = req.body; + const {ref_touristSpot} = req.params; + + if (!rating) { + return res.status(400).json({ error: "Please provide rating" }); + + } + let token = req.headers.authorization; + token = token.replace('Bearer ', ''); + const decoded = jwt.verify(token, process.env.SECRET_JWT_KEY); + const userId = decoded.id; + + const reviewData = { userId, ref_touristSpot, rating }; + const review = await reviewService.createReview(reviewData); + + res.status(201).json(review); + } catch (error) { + return res.status(500).json({ error: error.message }); + } +}; + +const getUserReviews = async (req, res) => { + try { + let token = req.headers.authorization; + token = token.replace('Bearer ', ''); + const decoded = jwt.verify(token, process.env.SECRET_JWT_KEY); + const userId = decoded.id; + + const reviews = await reviewService.getUserReviews(userId); + res.status(200).json(reviews); + } catch (error) { + return res.status(500).json({ error: error.message }); + } +}; + +const deleteReview = async (req, res) => { + try { + const { reviewId } = req.params; + const review = await reviewService.deleteReview(reviewId); + + if (!review) { + return res.status(404).json({ error: "Review not found" }); + } + + res.status(200).json({ message: "Review deleted successfully" }); + } catch (error) { + return res.status(500).json({ error: error.message }); + } +}; + + + +export default { findById, deleteUser, updateLoggedUser, findByToken, createReview, getUserReviews, deleteReview}; diff --git a/src/models/Review.js b/src/models/Review.js new file mode 100644 index 0000000..8515615 --- /dev/null +++ b/src/models/Review.js @@ -0,0 +1,24 @@ +import mongoose from 'mongoose'; + +const ReviewSchema = new mongoose.Schema({ + userId: { + type: String, + ref: 'User', + required: true + }, + ref_touristSpotId: { + type: String, + ref: 'ref_touristSpot', + required: true + }, + rating: { + type: Number, + required: true, + min: 1, + max: 5 + }, + +}); + +const Review = mongoose.model("Review", ReviewSchema); +export default Review; diff --git a/src/routes/user.route.js b/src/routes/user.route.js index 58d9886..fae6028 100644 --- a/src/routes/user.route.js +++ b/src/routes/user.route.js @@ -10,7 +10,6 @@ route.get('/:id', validId, validUser, userController.findById); route.patch('/', validToken, userController.updateLoggedUser); route.delete('/', validToken, userController.deleteUser); - // route.get('/', validToken, userController.findAll); // route.get('/:id', validId, validUser, validToken, userController.findById); // route.patch("/:id", validId, validUser, validToken, userController.update); diff --git a/src/services/review.service.js b/src/services/review.service.js new file mode 100644 index 0000000..de8e00d --- /dev/null +++ b/src/services/review.service.js @@ -0,0 +1,20 @@ +import Review from "../models/Review.js"; + +const createReview = async (reviewData) => { + const review = new Review(reviewData); + return await review.save(); +}; + +const getReviewsByref_touristSpot = async (ref_turismId) => { + return await Review.find({ ref_touristSpot }).populate('userId', 'name'); +}; + +const getUserReviews = async (userId) => { + return await Review.find({ userId }).populate('ref_touristSpotId', 'name'); +}; + +const deleteReview = async (reviewId) => { + return await Review.findByIdAndDelete(reviewId); +}; + +export default { createReview, getUserReviews, getReviewsByref_touristSpot, deleteReview }; \ No newline at end of file From 3d3ab19d07d4d43b47f6712cd16d8e0bf8f9ce98 Mon Sep 17 00:00:00 2001 From: Moises Santos Date: Tue, 18 Jun 2024 20:21:02 -0300 Subject: [PATCH 02/11] Codigo de Review --- app.js | 2 ++ src/controller/user.controller.js | 4 ++-- src/models/Review.js | 4 ++-- src/routes/review.router.js | 15 +++++++++++++++ src/services/review.service.js | 25 +++++++++++-------------- 5 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 src/routes/review.router.js diff --git a/app.js b/app.js index fd112be..b42bfe5 100644 --- a/app.js +++ b/app.js @@ -4,6 +4,7 @@ import userRoute from "./src/routes/user.route.js"; import adminRoute from "./src/routes/admin.route.js"; import rootRoute from "./src/routes/root.route.js"; import authRoute from "./src/routes/auth.route.js"; +import reviewRoute from "./src/routes/review.route.js"; import touristAttractionRoute from "./src/routes/touristAttraction.route.js"; import cors from 'cors'; import swaggerRoute from "./src/routes/swagger/swagger.route.js" @@ -33,6 +34,7 @@ app.use(express.json()); app.use("/admin", adminRoute); app.use("/user", userRoute); app.use("/auth", authRoute); +app.use("/review", reviewRoute); app.use("/touristAttraction", touristAttractionRoute); app.use("/", rootRoute); app.use("/docs", swaggerRoute); diff --git a/src/controller/user.controller.js b/src/controller/user.controller.js index e25d58d..c6aa196 100644 --- a/src/controller/user.controller.js +++ b/src/controller/user.controller.js @@ -75,7 +75,7 @@ const findByToken = async (req, res) => { const createReview = async (req, res) => { try { const {rating} = req.body; - const {ref_touristSpot} = req.params; + const {TouristAttractionId} = req.params; if (!rating) { return res.status(400).json({ error: "Please provide rating" }); @@ -86,7 +86,7 @@ const createReview = async (req, res) => { const decoded = jwt.verify(token, process.env.SECRET_JWT_KEY); const userId = decoded.id; - const reviewData = { userId, ref_touristSpot, rating }; + const reviewData = { userId, TouristAttractionId, rating }; const review = await reviewService.createReview(reviewData); res.status(201).json(review); diff --git a/src/models/Review.js b/src/models/Review.js index 8515615..892ed17 100644 --- a/src/models/Review.js +++ b/src/models/Review.js @@ -6,9 +6,9 @@ const ReviewSchema = new mongoose.Schema({ ref: 'User', required: true }, - ref_touristSpotId: { + TouristAttractionId: { type: String, - ref: 'ref_touristSpot', + ref: 'TouristAttraction', required: true }, rating: { diff --git a/src/routes/review.router.js b/src/routes/review.router.js new file mode 100644 index 0000000..3161a8d --- /dev/null +++ b/src/routes/review.router.js @@ -0,0 +1,15 @@ +import express from 'express'; +import reviewController from '../controller/review.controller.js'; +import { validToken } from "../middlewares/jwt.token.middleware.js"; + +const route = express.Router(); + +route.post('/:TouristAttractionId', validToken, reviewController.createReview); + +route.get('/tourist-attraction/:TouristAttractionId', reviewController.getReviewsByTouristAttractionId); + +route.get('/user', validToken, reviewController.getUserReviews); + +route.delete('/:reviewId', validToken, reviewController.deleteReview); + +export default route; diff --git a/src/services/review.service.js b/src/services/review.service.js index de8e00d..c3ff132 100644 --- a/src/services/review.service.js +++ b/src/services/review.service.js @@ -1,20 +1,17 @@ import Review from "../models/Review.js"; -const createReview = async (reviewData) => { - const review = new Review(reviewData); - return await review.save(); -}; +const createReview = (reviewData) => Review.create(reviewData); -const getReviewsByref_touristSpot = async (ref_turismId) => { - return await Review.find({ ref_touristSpot }).populate('userId', 'name'); -}; +const getReviewsByTouristAttractionId = (TouristAttractionId) => + Review.find({ TouristAttractionId }); -const getUserReviews = async (userId) => { - return await Review.find({ userId }).populate('ref_touristSpotId', 'name'); -}; +const getUserReviews = (userId) => Review.find({ userId }); -const deleteReview = async (reviewId) => { - return await Review.findByIdAndDelete(reviewId); -}; +const deleteReview = (reviewId) => Review.findByIdAndDelete(reviewId); -export default { createReview, getUserReviews, getReviewsByref_touristSpot, deleteReview }; \ No newline at end of file +export default { + createReview, + getReviewsByTouristAttractionId, + getUserReviews, + deleteReview, +}; \ No newline at end of file From a9b522a368bfe0011069a13b45eb08f119e38422 Mon Sep 17 00:00:00 2001 From: moisesinho <61696755+moisesinho@users.noreply.github.com> Date: Wed, 19 Jun 2024 18:48:36 -0300 Subject: [PATCH 03/11] Update swagger.js com Review --- src/routes/swagger/swagger.js | 362 ++++++++++++++++++++++++++++++++++ 1 file changed, 362 insertions(+) diff --git a/src/routes/swagger/swagger.js b/src/routes/swagger/swagger.js index e9f36b6..e7d3d28 100644 --- a/src/routes/swagger/swagger.js +++ b/src/routes/swagger/swagger.js @@ -459,6 +459,321 @@ export default { }, }, }, + "/touristAttraction/all": { + get: { + summary: "Busca todos os pontos turísticos (admin)", + description: "Retorna uma lista de todos os pontos turísticos", + operationId: "getAttractions", + security: [ + { + bearerAuth: [] + } + ], + responses: { + 200: { + description: "Lista de atrações turísticas", + content: { + "application/json": { + schema: { + type: "array", + items: { + $ref: "#/components/schemas/TouristAttraction", + }, + }, + }, + }, + } + }, + }, + }, + "/touristAttraction/create": { + post: { + summary: "Cria um ponto turístico (admin)", + description: "Realiza a criação de um ponto turístico definido por ID", + operationId: "addAttraction", + security: [ + { + bearerAuth: [] + } + ], + requestBody: { + content: { + "application/json": { + schema: { + $ref: "#/components/schemas/TouristAttraction", + }, + examples: { + touristAttraction: { + summary: "Exemplo de ponto turístico", + value: { + name: "Ponto turístico X", + address: "Rua Exemplo, n 001", + openingHours: "Seg a sex -> 09hrs - 18hrs", + typeOfAttraction: "TipoO1", + description: "Esta é uma longa descrição exemplo de uma atração turística", + }, + }, + }, + }, + }, + }, + responses: { + 201: { + description: "Atração Turística registrada com sucesso", + }, + 400: { + description: "Campos obrigatórios em falta", + }, + }, + }, + }, + "/touristAttraction/{id}/": { + patch: { + summary: "Atualiza um ponto turístico (admin)", + description: "Realiza uma atualização em um ponto turístico definido por ID", + operationId: "updateAttraction", + security: [ + { + bearerAuth: [] + } + ], + parameters: [ + { + name: "id", + in: "path", + description: "ID da atração turística a ser alterada", + required: true, + schema: { + type: "string", + }, + }, + ], + requestBody: { + content: { + "application/json": { + schema: { + $ref: "#/components/schemas/TouristAttraction", + }, + examples: { + touristAttraction: { + summary: "Exemplo de ponto turístico", + value: { + name: "Ponto turístico X", + address: "Rua Exemplo, n 001", + openingHours: "Seg a sex -> 09hrs - 18hrs", + typeOfAttraction: "TipoO1", + description: "Esta é uma longa descrição exemplo de uma atração turística", + }, + }, + }, + }, + }, + }, + responses: { + 204: { + description: "Atração Turística atualizada com sucesso", + }, + 404: { + description: "Atração Turística não encontrada", + }, + 400: { + description: "Campos obrigatórios em falta", + }, + }, + }, + delete: { + summary: "remove um ponto turístico (admin)", + description: "Realiza a remoção de um ponto turístico definido por ID", + operationId: "deleteAttraction", + security: [ + { + bearerAuth: [] + } + ], + parameters: [ + { + name: "id", + in: "path", + description: "ID do ponto turístico a ser removido", + required: true, + schema: { + type: "string", + }, + }, + ], + responses: { + 204: { + description: "Atração Turística removida com sucesso", + }, + 404: { + description: "Atração Turística não encontrada", + } + }, + }, + + }, + "/reviews/{TouristAttractionId}": { + post: { + summary: "Cria uma nova avaliação", + description: "Cria uma nova avaliação para uma atração turística específica", + operationId: "createReview", + parameters: [ + { + name: "TouristAttractionId", + in: "path", + required: true, + description: "ID da atração turística", + schema: { + type: "string", + }, + }, + ], + requestBody: { + required: true, + content: { + "application/json": { + schema: { + type: "object", + properties: { + rating: { + type: "number", + description: "Classificação da atração turística", + minimum: 1, + maximum: 5, + }, + }, + required: ["rating"], + }, + examples: { + review: { + summary: "Exemplo de avaliação", + value: { + rating: 4, + }, + }, + }, + }, + }, + }, + responses: { + 201: { + description: "Avaliação criada com sucesso", + content: { + "application/json": { + schema: { + $ref: "#/components/schemas/Review", + }, + }, + }, + }, + 400: { + description: "Dados inválidos", + }, + }, + security: [ + { + bearerAuth: [], + }, + ], + }, + }, + "/reviews/tourist-attraction/{TouristAttractionId}": { + get: { + summary: "Obtém avaliações por atração turística", + description: "Obtém todas as avaliações para uma atração turística específica", + operationId: "getReviewsByTouristAttractionId", + parameters: [ + { + name: "TouristAttractionId", + in: "path", + required: true, + description: "ID da atração turística", + schema: { + type: "string", + }, + }, + ], + responses: { + 200: { + description: "Lista de avaliações", + content: { + "application/json": { + schema: { + type: "array", + items: { + $ref: "#/components/schemas/Review", + }, + }, + }, + }, + }, + 404: { + description: "Avaliações não encontradas", + }, + }, + }, + }, + "/reviews/user": { + get: { + summary: "Obtém avaliações do usuário", + description: "Obtém todas as avaliações feitas pelo usuário autenticado", + operationId: "getUserReviews", + responses: { + 200: { + description: "Lista de avaliações do usuário", + content: { + "application/json": { + schema: { + type: "array", + items: { + $ref: "#/components/schemas/Review", + }, + }, + }, + }, + }, + 401: { + description: "Token não fornecido ou inválido", + }, + }, + security: [ + { + bearerAuth: [], + }, + ], + }, + }, + "/reviews/{reviewId}": { + delete: { + summary: "Deleta uma avaliação", + description: "Deleta uma avaliação específica pelo ID", + operationId: "deleteReview", + parameters: [ + { + name: "reviewId", + in: "path", + required: true, + description: "ID da avaliação", + schema: { + type: "string", + }, + }, + ], + responses: { + 200: { + description: "Avaliação deletada com sucesso", + }, + 404: { + description: "Avaliação não encontrada", + }, + }, + security: [ + { + bearerAuth: [], + }, + ], + }, + }, }, components: { securitySchemes: { @@ -469,6 +784,31 @@ export default { } }, schemas: { + TouristAttraction: { + type: "object", + properties: { + name: { + type: "string", + description: "Nome da atração turística" + }, + address: { + type: "string", + description: "Endereço da atração turística" + }, + openingHours: { + type: "string", + description: "Horário de funcionamento da atração turística" + }, + typeOfAttraction: { + type: "string", + description: "Tipo de atração turística" + }, + description: { + type: "string", + description: "Descrição da atração turística" + } + } + }, User: { type: "object", properties: { @@ -513,8 +853,30 @@ export default { }, }, }, + Review: { + type: "object", + properties: { + userId: { + type: "string", + description: "ID do usuário que fez a avaliação", + }, + TouristAttractionId: { + type: "string", + description: "ID da atração turística avaliada", + }, + rating: { + type: "number", + description: "Classificação da atração turística", + minimum: 1, + maximum: 5, + }, + }, + required: ["userId", "TouristAttractionId", "rating"], + }, }, }, }, + + apis: ["./src/routes/*.route.js"], }; From 5761993bb01b0acab9486a1060b47a11ad56fe8f Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:29:37 -0300 Subject: [PATCH 04/11] Rename review.router.js to review.route.js --- src/routes/{review.router.js => review.route.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/routes/{review.router.js => review.route.js} (100%) diff --git a/src/routes/review.router.js b/src/routes/review.route.js similarity index 100% rename from src/routes/review.router.js rename to src/routes/review.route.js From 3ce9e0e53cf58c7d025991088eb18bc674ef9899 Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:34:13 -0300 Subject: [PATCH 05/11] Update user.controller.js --- src/controller/user.controller.js | 56 +------------------------------ 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/src/controller/user.controller.js b/src/controller/user.controller.js index c6aa196..8f73175 100644 --- a/src/controller/user.controller.js +++ b/src/controller/user.controller.js @@ -72,58 +72,4 @@ const findByToken = async (req, res) => { } }; -const createReview = async (req, res) => { - try { - const {rating} = req.body; - const {TouristAttractionId} = req.params; - - if (!rating) { - return res.status(400).json({ error: "Please provide rating" }); - - } - let token = req.headers.authorization; - token = token.replace('Bearer ', ''); - const decoded = jwt.verify(token, process.env.SECRET_JWT_KEY); - const userId = decoded.id; - - const reviewData = { userId, TouristAttractionId, rating }; - const review = await reviewService.createReview(reviewData); - - res.status(201).json(review); - } catch (error) { - return res.status(500).json({ error: error.message }); - } -}; - -const getUserReviews = async (req, res) => { - try { - let token = req.headers.authorization; - token = token.replace('Bearer ', ''); - const decoded = jwt.verify(token, process.env.SECRET_JWT_KEY); - const userId = decoded.id; - - const reviews = await reviewService.getUserReviews(userId); - res.status(200).json(reviews); - } catch (error) { - return res.status(500).json({ error: error.message }); - } -}; - -const deleteReview = async (req, res) => { - try { - const { reviewId } = req.params; - const review = await reviewService.deleteReview(reviewId); - - if (!review) { - return res.status(404).json({ error: "Review not found" }); - } - - res.status(200).json({ message: "Review deleted successfully" }); - } catch (error) { - return res.status(500).json({ error: error.message }); - } -}; - - - -export default { findById, deleteUser, updateLoggedUser, findByToken, createReview, getUserReviews, deleteReview}; +export default { findById, deleteUser, updateLoggedUser, findByToken }; From a705d3b366855b7894098812116bff531bf0af1c Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:34:33 -0300 Subject: [PATCH 06/11] Update user.controller.js --- src/controller/user.controller.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controller/user.controller.js b/src/controller/user.controller.js index 8f73175..955b671 100644 --- a/src/controller/user.controller.js +++ b/src/controller/user.controller.js @@ -1,5 +1,4 @@ import userService from "../services/user.service.js"; -import userService from "../services/review.service.js"; import jwt from'jsonwebtoken'; import bcrypt from 'bcrypt'; From 40a6128b338d49e28c2d4935f7cd1081edac4779 Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:36:01 -0300 Subject: [PATCH 07/11] Create review.controller.js --- src/controller/review.controller.js | 58 +++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/controller/review.controller.js diff --git a/src/controller/review.controller.js b/src/controller/review.controller.js new file mode 100644 index 0000000..dd6db8b --- /dev/null +++ b/src/controller/review.controller.js @@ -0,0 +1,58 @@ +import userService from "../services/review.service.js"; +import jwt from'jsonwebtoken'; +import bcrypt from 'bcrypt'; + +const createReview = async (req, res) => { + try { + const {rating} = req.body; + const {TouristAttractionId} = req.params; + + if (!rating) { + return res.status(400).json({ error: "Please provide rating" }); + + } + let token = req.headers.authorization; + token = token.replace('Bearer ', ''); + const decoded = jwt.verify(token, process.env.SECRET_JWT_KEY); + const userId = decoded.id; + + const reviewData = { userId, TouristAttractionId, rating }; + const review = await reviewService.createReview(reviewData); + + res.status(201).json(review); + } catch (error) { + return res.status(500).json({ error: error.message }); + } +}; + +const getUserReviews = async (req, res) => { + try { + let token = req.headers.authorization; + token = token.replace('Bearer ', ''); + const decoded = jwt.verify(token, process.env.SECRET_JWT_KEY); + const userId = decoded.id; + + const reviews = await reviewService.getUserReviews(userId); + res.status(200).json(reviews); + } catch (error) { + return res.status(500).json({ error: error.message }); + } +}; + +const deleteReview = async (req, res) => { + try { + const { reviewId } = req.params; + const review = await reviewService.deleteReview(reviewId); + + if (!review) { + return res.status(404).json({ error: "Review not found" }); + } + + res.status(200).json({ message: "Review deleted successfully" }); + } catch (error) { + return res.status(500).json({ error: error.message }); + } +}; + + +export default { createReview, getUserReviews, deleteReview }; From 33741645f89375046b2f0ec81c244886da18d53b Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:41:49 -0300 Subject: [PATCH 08/11] Update review.route.js --- src/routes/review.route.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/review.route.js b/src/routes/review.route.js index 3161a8d..3454c09 100644 --- a/src/routes/review.route.js +++ b/src/routes/review.route.js @@ -6,10 +6,10 @@ const route = express.Router(); route.post('/:TouristAttractionId', validToken, reviewController.createReview); -route.get('/tourist-attraction/:TouristAttractionId', reviewController.getReviewsByTouristAttractionId); - route.get('/user', validToken, reviewController.getUserReviews); route.delete('/:reviewId', validToken, reviewController.deleteReview); +// route.get('/tourist-attraction/:TouristAttractionId', reviewController.getReviewsByTouristAttractionId); + export default route; From 208252833fb1046f28772a50246f9bb57c5caee6 Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:46:48 -0300 Subject: [PATCH 09/11] Update app.js --- app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.js b/app.js index b42bfe5..75c6f1a 100644 --- a/app.js +++ b/app.js @@ -34,7 +34,7 @@ app.use(express.json()); app.use("/admin", adminRoute); app.use("/user", userRoute); app.use("/auth", authRoute); -app.use("/review", reviewRoute); +app.use("/reviews", reviewRoute); app.use("/touristAttraction", touristAttractionRoute); app.use("/", rootRoute); app.use("/docs", swaggerRoute); From d452962b39c8c5953068f7c7506e1142c691ec95 Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:50:54 -0300 Subject: [PATCH 10/11] Update review.controller.js --- src/controller/review.controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controller/review.controller.js b/src/controller/review.controller.js index dd6db8b..0ab2761 100644 --- a/src/controller/review.controller.js +++ b/src/controller/review.controller.js @@ -1,4 +1,4 @@ -import userService from "../services/review.service.js"; +import reviewService from "../services/review.service.js"; import jwt from'jsonwebtoken'; import bcrypt from 'bcrypt'; From 64655e90d29b6ab20d1b098e61ee473c6ea22e06 Mon Sep 17 00:00:00 2001 From: Tauane Sales <62819445+tauanesales@users.noreply.github.com> Date: Thu, 20 Jun 2024 21:49:39 -0300 Subject: [PATCH 11/11] Update swagger.js --- src/routes/swagger/swagger.js | 72 +++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/routes/swagger/swagger.js b/src/routes/swagger/swagger.js index b211d9c..3be0dbc 100644 --- a/src/routes/swagger/swagger.js +++ b/src/routes/swagger/swagger.js @@ -676,42 +676,42 @@ export default { ], }, }, - "/reviews/tourist-attraction/{TouristAttractionId}": { - get: { - summary: "Obtém avaliações por atração turística", - description: "Obtém todas as avaliações para uma atração turística específica", - operationId: "getReviewsByTouristAttractionId", - parameters: [ - { - name: "TouristAttractionId", - in: "path", - required: true, - description: "ID da atração turística", - schema: { - type: "string", - }, - }, - ], - responses: { - 200: { - description: "Lista de avaliações", - content: { - "application/json": { - schema: { - type: "array", - items: { - $ref: "#/components/schemas/Review", - }, - }, - }, - }, - }, - 404: { - description: "Avaliações não encontradas", - }, - }, - }, - }, + // "/reviews/tourist-attraction/{TouristAttractionId}": { + // get: { + // summary: "Obtém avaliações por atração turística", + // description: "Obtém todas as avaliações para uma atração turística específica", + // operationId: "getReviewsByTouristAttractionId", + // parameters: [ + // { + // name: "TouristAttractionId", + // in: "path", + // required: true, + // description: "ID da atração turística", + // schema: { + // type: "string", + // }, + // }, + // ], + // responses: { + // 200: { + // description: "Lista de avaliações", + // content: { + // "application/json": { + // schema: { + // type: "array", + // items: { + // $ref: "#/components/schemas/Review", + // }, + // }, + // }, + // }, + // }, + // 404: { + // description: "Avaliações não encontradas", + // }, + // }, + // }, + // }, "/reviews/user": { get: { summary: "Obtém avaliações do usuário",