all repos — caroster @ 697013da96cbab8cec2487977d72c09c114fdec7

[Octree] Group carpool to your event https://caroster.io

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];