Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

récuperation des fichiers supprimé durant le weekend #55

Merged
merged 1 commit into from
Jan 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions backend/src/controllers/commentaireParFilmControllers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
const tables = require("../tables");

const read = async (req, res, next) => {
try {
const commentaire = await tables.commentaire_film.read(req.params.id);
if (commentaire == null) {
res.sendStatus(404);
} else {
res.json(commentaire);
}
} catch (err) {
next(err);
}
};

const edit = async (req, res, next) => {
try {
const result = await tables.commentaire_film.update(req);
if (result) {
try {
const newComment = await tables.commentaire_film.readOne(req.params.id);
if (newComment) {
res.json(newComment);
}
res.sendStatus(404);
} catch (err) {
next(err);
}
}
res.sendStatus(404);
} catch (err) {
next(err);
}
};

const add = async (req, res, next) => {
const commentaire = req.body;

try {
const insertId = await tables.commentaire_film.create(commentaire);
res.status(200).json({ insertId });
} catch (err) {
next(err);
}
};

const destroy = async (req, res, next) => {
const commentaireId = req.params.id;

try {
const deletedRows = await tables.commentaire_film.delete({
id: commentaireId,
});

if (deletedRows > 0) {
res.status(200).json({ message: "Commentaire supprimé avec succès." });
} else {
res.status(404).json({ message: "Commentaire non trouvé." });
}
} catch (err) {
console.error("Erreur lors de la suppression du commentaire :", err);
next(err);
}
};

module.exports = {
read,
edit,
add,
destroy,
};
57 changes: 57 additions & 0 deletions backend/src/models/CommentaireParFilmManager.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
const AbstractManager = require("./AbstractManager");

class CommentaireParFilmManager extends AbstractManager {
constructor() {
super({ table: "commentaire_film" });
}

async create({ userId, filmId, content }) {
const [result] = await this.database.query(
`insert into ${this.table} (userId, filmId, content) values (?,?,?)`,
[userId, filmId, content]
);
return result.insertId;
}

async readOne(id) {
const [result] = await this.database.query(
`SELECT cf.id, cf.content, cf.userId FROM ${this.table} cf WHERE id = ?`,
[id]
);
return {
Status: 200,
Message: "votre commentaire a bien été modifié",
Data: result,
};
}

async read(id) {
const [result] = await this.database.query(
`select cf.id, cf.content, cf.userId
from ${this.table} cf
inner join user u on cf.userId = u.id
inner join film f on cf.filmId = f.id
where cf.filmId = ?`,
[id]
);
return result;
}

async update(req) {
const [result] = await this.database.query(
`update ${this.table} SET content = ? WHERE id = ?`,
[req.body.content, req.params.id]
);
return result;
}

async delete(commentaireId) {
const [result] = await this.database.query(
`DELETE FROM commentaire_film WHERE id = ?`,
[commentaireId.id]
);

return result.affectedRows || 0;
}
}
module.exports = CommentaireParFilmManager;
7 changes: 5 additions & 2 deletions backend/src/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const userControllers = require("./controllers/userControllers");
const favoriFilmControllers = require("./controllers/favoriFilmControllers");
const watchlistControllers = require("./controllers/watchlistControllers");
const authControllers = require("./controllers/authControllers");
const commentaireParFilmControllers = require("./controllers/commentaireParFilmControllers");

// Route to get a list of items
router.get("/films", filmControllers.browse);
Expand All @@ -33,17 +34,19 @@ router.get(
);

// Route to get a specific item by ID

router.get("/commentaires/film/:id", commentaireParFilmControllers.read);
// Route to edit a specific item by ID

router.put("/commentaire/film/:id", commentaireParFilmControllers.edit);
// Route to add a new item
router.post("/login", authControllers.login);
router.post("/users", userControllers.add);
router.post("/favorites/film", favoriFilmControllers.addMovieToFavorite);
router.post("/watchlist/film", watchlistControllers.addMovieToWatchlist);
router.post("/commentaire/film", commentaireParFilmControllers.add);

// Route to delete a specific item by ID
router.delete("/favorites/film/:userId/:filmId", favoriFilmControllers.destroy);
router.delete("/watchlist/film/:userId/:filmId", watchlistControllers.destroy);
router.delete("/commentaire/film/:id", commentaireParFilmControllers.destroy);

module.exports = router;
2 changes: 2 additions & 0 deletions backend/src/tables.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const FilmManager = require("./models/FilmManager");
const FavoriFilmManager = require("./models/FavoriFilmManager");
const CategorieParFilmManager = require("./models/CategorieParFilmManager");
const WatchlistManager = require("./models/WatchlistManager");
const CommentaireParFilmManager = require("./models/CommentaireParFilmManager");

const managers = [
CategorieManager,
Expand All @@ -17,6 +18,7 @@ const managers = [
FavoriFilmManager,
CategorieParFilmManager,
WatchlistManager,
CommentaireParFilmManager,
// Add other managers here
];

Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/CategoryDisplay.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import MovieLink from "./MovieLink";

const responsive = {
desktop: {
breakpoint: { max: 1600, min: 1025 },
breakpoint: { max: 4000, min: 1025 },
items: 4,
// partialVisibilityGutter: 0,
},
Expand Down
4 changes: 2 additions & 2 deletions frontend/src/components/NavBarDesktop.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ function NavBarDesktop() {
className="icon"
src={
!user.civility
? "/src/assets/icons/avatar1.svg"
: "/src/assets/icons/FemaleAvatar.svg"
? "/src/assets/icons/FemaleAvatar.svg"
: "/src/assets/icons/avatar1.svg"
}
alt="avatar"
style={{
Expand Down