Cuando creo un controlador personalizado en Strapi, obtengo acceso conveniente a un objeto Contexto donde puedo obtener el usuario actual y usar los datos de ese usuario como deseo:
module.exports = createCoreController("api::event.event", ({ strapi }) => ({ //Get logged in users async me(ctx) { const user = ctx.state.user; if (!user) { return ctx.badRequest(null, [ { messages: [{ id: "No authorization header was found" }] }, ]); } const data = await strapi.entityService.findMany("api::event.event", { filters: { user: user.id, }, }); if (!data) { return ctx.notFound(); } const sanitizedEntity = await sanitize.contentAPI.output(data); return { data: sanitizedEntity }; }, }));Sin embargo, cuando creo un servicio personalizado tratando de extender los servicios principales, parece que no tengo el objeto de contexto como se muestra arriba:
module.exports = createCoreService("api::event.event", ({ strapi }) => ({ //https://docs.strapi.io/developer-docs/latest/development/backend-customization/services.html#extending-core-services async create(params) { console.log("inside event.js - create"); console.log("params", params); console.log("params to save", params); // some logic here const result = await super.create(params); // some more logic return result; }, async update(entityId, params) { params.data.user = entityId; // some logic here const result = await super.update(entityId, params); // some more logic return result; }, }));Si es posible, me gustaría acceder al objeto de contexto porque me gustaría acceder a la información del usuario y obtener la identificación del usuario y agregar esa identificación como propietario o creador de esa entrada.
¿Es posible y cómo se hace eso?