all repos — caroster @ 2b432f87d46e7cab99f95223088266dcc4cb2dda

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

backend/src/migrations/passengers-event.ts (view raw)

 1const Strapi = require("@strapi/strapi");
 2
 3const main = async () => {
 4  const appContext = await Strapi.compile();
 5  await Strapi(appContext).load();
 6
 7  const passengers = await strapi.entityService.findMany(
 8    "api::passenger.passenger",
 9    {
10      limit: -1,
11      populate: ["event", "travel", "travel.event"],
12    }
13  );
14
15  // @ts-expect-error
16  const passengersWithoutEvent = passengers.filter(
17    (passenger) => !passenger.event
18  );
19
20  for (const passenger of passengersWithoutEvent) {
21    if (!passenger.travel)
22      throw new Error(`Passenger ${passenger.id} has no travel and no event`);
23    const eventId = passenger.travel.event?.id;
24    if (!eventId)
25      throw new Error(`Travel of passenger ${passenger.id} has no event`);
26    await strapi.entityService.update(
27      "api::passenger.passenger",
28      passenger.id,
29      {
30        data: {
31          // @ts-expect-error
32          event: eventId,
33        },
34      }
35    );
36    console.log(`Passenger ${passenger.id} linked to event ${eventId}`);
37  }
38
39  process.exit(0);
40};
41
42main().catch((error) => {
43  console.error(error);
44  process.exit(1);
45});