Así que estoy mirando los documentos de Prisma y me encuentro con un ejemplo para crear una consulta relacional. Esta consulta inserta una nueva publicación y le asigna un autor con una categoría existente.
const assignCategories = await prisma.post.create({ data: { title: 'How to be Bob', categories: { create: [ { assignedBy: 'Bob', assignedAt: new Date(), category: { connect: { id: 9, }, }, }, { assignedBy: 'Bob', assignedAt: new Date(), category: { connect: { id: 22, }, }, }, ], }, }, })Puedo entender lo que hace esta consulta, pero no entiendo cómo implementar esto en un backend con el cuerpo de la solicitud entrante.
Supongamos que tengo este cuerpo de solicitud
{ "title": "how to be bob", "categories": [ { "assignedby": "bob", "category": { "id": 9 } }, { "assignedby": "bob", "category": { "id": 22 } } ] }¿Cómo transformo este cuerpo de solicitud en el objeto de datos en el primer bloque de código?
Lo tengo. Estuvo en mi cara todo el tiempo. Simplemente use .map para mapear a través de las categorías
const data = { title: 'how to be bob', categories: [ { assignedby: 'bob', category: { id: 9, }, }, { assignedby: 'bob', category: { id: 22, }, }, ], }; const mappedData = { title: data.title, categories: { create: data.categories.map((i) => ({ assignedBy: i.assignedby, assignedAt: new Date(), category: { connect: { id: i.category.id, }, }, })), }, }; console.log(mappedData);que registra esto
"title": "how to be bob", "categories": { "create": [ { "assignedBy": "bob", "assignedAt": "2021-10-24T12:10:00.397Z", "category": { "connect": { "id": 9 } } }, { "assignedBy": "bob", "assignedAt": "2021-10-24T12:10:00.397Z", "category": { "connect": { "id": 22 } } } ] } }Justo lo que necesitamos exactamente.