all repos — caroster @ v8.0

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

backend/src/api/event/controllers/event.ts (view raw)

 1// @ts-nocheck
 2import { factories } from "@strapi/strapi";
 3
 4export default factories.createCoreController(
 5  "api::event.event",
 6  ({ strapi }) => ({
 7    async findOne(ctx) {
 8      const uuid = ctx.params.id;
 9      if (!uuid) throw new Error("No uuid provided");
10      const event = await strapi.db
11        .query("api::event.event")
12        .findOne({ where: { uuid } });
13      if (event) return this.sanitizeOutput(event, ctx);
14      else return ctx.badRequest("No event found");
15    },
16
17    async create(ctx) {
18      let eventData = ctx.request.body;
19      const user = ctx.state.user;
20
21      if (user) eventData = { ...eventData, users: [user.id] };
22
23      const goEvent = await strapi.entityService.create("api::event.event", {
24        data: eventData,
25      });
26      const returnEvent = await strapi.entityService.create(
27        "api::event.event",
28        {
29          data: { ...eventData, isReturnEvent: true, linkedEvent: goEvent.id },
30        }
31      );
32      await strapi.entityService.update("api::event.event", goEvent.id, {
33        data: { linkedEvent: returnEvent.id },
34      });
35      return this.sanitizeOutput(goEvent, ctx);
36    },
37  })
38);