64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
const db = require("../../models");
|
|
|
|
const ActorResolvers = {
|
|
Query: {
|
|
async getActor(_, { id }) {
|
|
try {
|
|
const actor = await db.actor.findByPk(id, {
|
|
include: [
|
|
{ model: db.movie, as: "movies", through: { attributes: [] } },
|
|
],
|
|
});
|
|
if (!actor) return { success: false, error: "Actor not found" };
|
|
return { success: true, data: actor };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
},
|
|
async getAllActors() {
|
|
try {
|
|
const actors = await db.actor.findAll({
|
|
include: [
|
|
{ model: db.movie, as: "movies", through: { attributes: [] } },
|
|
],
|
|
});
|
|
return { success: true, data: actors };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
},
|
|
},
|
|
Mutation: {
|
|
async createActor(_, args) {
|
|
try {
|
|
const actor = await db.actor.create(args);
|
|
return { success: true, data: actor };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
},
|
|
async updateActor(_, { id, ...args }) {
|
|
try {
|
|
const actor = await db.actor.findByPk(id);
|
|
if (!actor) return { success: false, error: "Actor not found" };
|
|
await actor.update(args);
|
|
return { success: true, data: actor };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
},
|
|
async deleteActor(_, { id }) {
|
|
try {
|
|
const actor = await db.actor.findByPk(id);
|
|
if (!actor) return { success: false, error: "Actor not found" };
|
|
await actor.destroy();
|
|
return { success: true, data: actor };
|
|
} catch (error) {
|
|
return { success: false, error: error.message };
|
|
}
|
|
},
|
|
},
|
|
};
|
|
|
|
module.exports = ActorResolvers;
|