all repos — caroster @ c69db1134f4b237980f3a33c65e140c7ba4a10c7

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

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

 1export default [
 2  ({ nexus, strapi }) => ({
 3    resolvers: {
 4      Passenger: {
 5        // Filter user private fields in passenger lists
 6        user: {
 7          async resolve(parent) {
 8            const passenger = await strapi.entityService.findOne(
 9              "api::passenger.passenger",
10              parent.id,
11              { populate: ["user"] }
12            );
13            const user = passenger?.user;
14            if (!user) return null;
15
16            return {
17              value: {
18                id: user.id,
19                firstName: user.firstName,
20                lastName: user.lastName,
21                lang: user.lang,
22              },
23            };
24          },
25        },
26      },
27      UsersPermissionsUser: {
28        // Filter user vehicles if not for profile fetching
29        vehicles: {
30          async resolve(queriedUser, args, _context, query) {
31            if (query.path.prev.key !== "profile") return null;
32
33            const user = await strapi.entityService.findOne(
34              "plugin::users-permissions.user",
35              queriedUser.id,
36              { populate: ["vehicles"] }
37            );
38            if (!user?.vehicles) return null;
39
40            const { toEntityResponseCollection } = strapi
41              .plugin("graphql")
42              .service("format").returnTypes;
43
44            return toEntityResponseCollection(user.vehicles, {
45              args,
46              resourceUID: "api::vehicle.vehicle",
47            });
48          },
49        },
50      },
51    },
52  }),
53];