backend/src/graphql/vehicle/index.ts (view raw)
1export default [
2 ({ nexus, strapi }) => ({
3 resolvers: {
4 Mutation: {
5 deleteVehicle: {
6 async resolve(_root, args, context) {
7 const { user } = context.state;
8 const vehicle = await strapi.entityService.findOne(
9 "api::vehicle.vehicle",
10 args.id,
11 { populate: ["user"] }
12 );
13
14 if (!vehicle) throw new Error("Vehicle not found");
15 else if (vehicle.user?.id !== user.id)
16 throw new Error("Not Authorized");
17
18 const deleteVehicle = await strapi.entityService.delete(
19 "api::vehicle.vehicle",
20 args.id
21 );
22
23 return {
24 value: deleteVehicle,
25 info: { args, resourceUID: "api::vehicle.vehicle" },
26 };
27 },
28 },
29 },
30 },
31 }),
32];