Tengo trabajando si/si no que se parece a esto:
async invoke(request, response) { const { deleted } = request.query; let users = []; if (deleted === 'true') { users = await User.findAndCountAll({ where: { deletedAt: { [Op.not]: null } } }); } else if (deleted === 'false') { users = await User.findAndCountAll({ where: { deletedAt: null } }); } return response.send(users); }Estoy tratando de hacerlo de una sola línea, pero el problema es que {borrado} devuelve "indefinido" y "verdadero", y necesito que devuelva "verdadero" y "falso".
invocación asíncrona (solicitud, respuesta) { const { eliminado } = solicitud.consulta;
const deletedAt = deleted ? { [Op.not]: null } : null; const users = await User.findAndCountAll({ where: { deletedAt } }); return response.send(users); }Suponiendo que los únicos dos estados válidos para deleted son "true" y "false" (es extraño que sea una cadena), dado que la única diferencia en las llamadas findAndCountAll es el valor de deletedAt , puede usar el operador condicional:
async invoke(request, response) { const { deleted } = request.query; let users = await User.findAndCountAll({ where: { deletedAt: deleted === 'true' ? { [Op.not]: null } : null // −−−−−−−−−−−−−−−−−−−−^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } }); return response.send(users); }