Files
harmony-back/src/api/choral/controllers/choral.ts
2026-04-06 00:52:13 +02:00

67 lines
1.9 KiB
TypeScript

/**
* 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;
},
})
);