all repos — caroster @ eb701b6613d4a7a6c86f7adcf42341b4abc6726f

[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  const passengersWithoutEvent = passengers.filter(
16    (passenger) => !passenger.event
17  );
18
19  for (const passenger of passengersWithoutEvent) {
20    if (!passenger.travel)
21      throw new Error(`Passenger ${passenger.id} has no travel and no event`);
22    const eventId = passenger.travel.event?.id;
23    if (!eventId)
24      throw new Error(`Travel of passenger ${passenger.id} has no event`);
25    await strapi.entityService.update(
26      "api::passenger.passenger",
27      passenger.id,
28      {
29        data: {
30          event: eventId,
31        },
32      }
33    );
34    console.log(`Passenger ${passenger.id} linked to event ${eventId}`);
35  }
36
37  process.exit(0);
38};
39
40main().catch((error) => {
41  console.error(error);
42  process.exit(1);
43});