La lógica del upsert para determinar si llamar al insert o al update no está funcionando.
Tal como está el código, siempre viene información dentro del data.id (si es registro nuevo el data.id lo estamos llenando desde el controller con el id generado por nanoid).
Como desde el controlador para cualquier caso data.id viene lleno, entonces se está entrando directamente al update y nunca en el insert.
Para solventar esto yo agregué un parámetro en la función upsert que me dice si el registro es nuevo o no:
function upsert(table, data, isNew){
if(data && isNew){
return insert(table, data);
}else{
return update(table, data);
}
}
No sé si hay alguna mejor forma de hacerlo.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?