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 resolversConfig: {
32 "Mutation.createVehicle": {
33 auth: true,
34 policies: ["api::vehicle.check-creation"],
35 },
36 "Mutation.deleteVehicle": {
37 auth: true,
38 policies: ["api::vehicle.check-deletion"],
39 },
40 },
41 }),
42];