Files
internship_node/day11/resolvers/custom/reviewResolvers.js
T
2025-07-17 16:55:13 +01:00

60 lines
1.7 KiB
JavaScript

const db = require("../../models");
const ReviewResolvers = {
Query: {
async getReview(_, { id }) {
try {
const review = await db.review.findByPk(id, {
include: [{ model: db.movie, as: "movie" }],
});
if (!review) return { success: false, error: "Review not found" };
return { success: true, data: review };
} catch (error) {
return { success: false, error: error.message };
}
},
async getAllReviews() {
try {
const reviews = await db.review.findAll({
include: [{ model: db.movie, as: "movie" }],
});
return { success: true, data: reviews };
} catch (error) {
return { success: false, error: error.message };
}
},
},
Mutation: {
async createReview(_, args) {
try {
const review = await db.review.create(args);
return { success: true, data: review };
} catch (error) {
return { success: false, error: error.message };
}
},
async updateReview(_, { id, ...args }) {
try {
const review = await db.review.findByPk(id);
if (!review) return { success: false, error: "Review not found" };
await review.update(args);
return { success: true, data: review };
} catch (error) {
return { success: false, error: error.message };
}
},
async deleteReview(_, { id }) {
try {
const review = await db.review.findByPk(id);
if (!review) return { success: false, error: "Review not found" };
await review.destroy();
return { success: true, data: review };
} catch (error) {
return { success: false, error: error.message };
}
},
},
};
module.exports = ReviewResolvers;