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 const createdTravel = await strapi.entityService.create(
25 "api::travel.travel",
26 {
27 data: {
28 ...args.data,
29 user: user?.id,
30 },
31 }
32 );
33 return {
34 value: createdTravel,
35 info: { args, resourceUID: "api::travel.travel" },
36 };
37 },
38 },
39 },
40 },
41 resolversConfig: {
42 "Mutation.createTravel": {
43 auth: false,
44 policies: ["api::travel.check-creation"],
45 },
46 "Mutation.updateTravel": {
47 auth: false,
48 policies: ["api::travel.check-update"],
49 },
50 "Mutation.deleteTravel": {
51 auth: false,
52 policies: ["api::travel.check-deletion"],
53 },
54 "Travel.passengers": {
55 auth: false,
56 },
57 "Travel.user": {
58 auth: false,
59 },
60 },
61 }),
62];