all repos — caroster @ c69db1134f4b237980f3a33c65e140c7ba4a10c7

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

backend/src/graphql/travel/index.ts (view raw)

 1export default [
 2  ({ nexus, strapi }) => ({
 3    types: [
 4      nexus.extendType({
 5        type: "Mutation",
 6        definition(t) {
 7          t.field("createTravel", {
 8            type: "TravelEntityResponse",
 9            args: {
10              data: nexus.nonNull("TravelInput"),
11              createVehicle: "Boolean",
12            },
13          });
14        },
15      }),
16    ],
17    resolvers: {
18      Mutation: {
19        createTravel: {
20          async resolve(_root, args, context) {
21            const {
22              state: { user },
23            } = context;
24
25            const createdTravel = await strapi.entityService.create(
26              "api::travel.travel",
27              {
28                data: args.data,
29              }
30            );
31
32            if (user && args.createVehicle) {
33              const vehicleData = {
34                name: args.data.vehicleName,
35                seats: args.data.seats || 0,
36                phone_number: args.data.phone_number,
37                user: user.id,
38              };
39              await strapi.entityService.create("api::vehicle.vehicle", {
40                data: vehicleData,
41              });
42              strapi.log.info(`New vehicle created for user ${user.id}`);
43            }
44
45            return {
46              value: createdTravel,
47              info: { args, resourceUID: "api::travel.travel" },
48            };
49          },
50        },
51      },
52    },
53  }),
54];