/** * choral controller */ import { factories } from "@strapi/strapi"; export default factories.createCoreController( "api::choral.choral", ({ strapi }) => ({ async create(ctx) { const data = JSON.parse(ctx.request.body.data); if (ctx.request.files.coverImage) { const files = Array.isArray(ctx.request.files.coverImage) ? ctx.request.files.coverImage[0] : ctx.request.files.coverImage; const extension = files.originalFilename.match(/\.[0-9a-z]+$/i); const payload = { fileInfo: { caption: "undefined", alternativeText: data.name || "", name: `${data.name}_cover${extension}`, }, }; const asset = await strapi.services["plugin::upload.upload"].upload({ data: payload, files, }); data.cover = asset[0].id; } ctx.request.body = { data }; const result = await super.create(ctx); return result; }, async update(ctx) { const data = ctx.request.body.data ? JSON.parse(ctx.request.body.data) : {}; if (ctx.request.files && ctx.request.files.coverImage) { const files = Array.isArray(ctx.request.files.coverImage) ? ctx.request.files.coverImage[0] : ctx.request.files.coverImage; const extension = files.originalFilename.match(/\.[0-9a-z]+$/i); const payload = { fileInfo: { caption: "undefined", alternativeText: data.name || "", name: `${data.name}_cover${extension}`, }, }; const asset = await strapi.services["plugin::upload.upload"].upload({ data: payload, files, }); data.cover = asset[0].id; } ctx.request.body = { data }; const result = await super.update(ctx); return result; }, }) );