Как сказал Кристиан, вам придется создать свой собственный маршрут в API вашей организации.
- Создать свой маршрут.
Путь - api/organization/config/routes.json
{
"routes": [
{
"method": "POST",
"path": "/organizations/:id/employees",
"handler": "organization.cusom",
"config": {
"policies": []
}
},
...
]
}
Создание функции контроллера.
Для этого я скопирую функцию из create
по умолчанию:
https://strapi.io/documentation/3.0.0-beta.x/concepts/controllers.html#core -контроллеров
Путь - `api / organization / controllers / organizaion.js`` *
const { parseMultipartData, sanitizeEntity } = require('strapi-utils');
module.exports = {
async custom(ctx) {
let entity;
if (ctx.is('multipart')) {
const { data, files } = parseMultipartData(ctx);
entity = await strapi.services.employee.create(data, { files });
} else {
entity = await strapi.services.employee.create(ctx.request.body);
}
return sanitizeEntity(entity, { model: strapi.models.employee });
},
};
И установите employee
для создания, потому что мы хотим создать сотрудника .
Принудительно использовать правильный идентификатор организации
module.exports = {
async custom(ctx) {
// get the id params from the URL
const {id} = ctx.params;
// force the relation to this specific organisation
ctx.request.body.organization = id;
if (ctx.is('multipart')) {
const { data, files } = parseMultipartData(ctx);
entity = await strapi.services.employee.create(data, { files });
} else {
entity = await strapi.services.employee.create(ctx.request.body);
}
return sanitizeEntity(entity, { model: strapi.models.employee });
},
};