Feathers-Sequelize Где утверждение и параметр запроса
У меня есть следующий запрос:
context.params.sequelize = {
raw: false,
include: [{
model: organisations,
where: organisationId ? { id: organisationId } : undefined,
include: [{
model: roles,
where: roleId ? { id: roleId } : undefined,
}],
}],
where: single ? (
sequelize.and(
sequelize.where(
sequelize.col('"organisations->organisation_users"."roleId"'),
sequelize.col('"organisations->roles"."id"'),
),
sequelize.where(
sequelize.col('"organisations->organisation_users"."userId"'),
sequelize.col("users.id")
)
)
) : undefined
}
Я делаю следующий запрос на обслуживание:
await UserService.find({ query: { email: data.email } }))
Объект запроса опущен, так как в приведенном выше запросе sequelize я задаю свой собственный оператор where. Если я удаляю оператор where, то объект запроса работает. Как я могу использовать свой собственный оператор where, а также включить объект запроса перьев?
Спасибо! С уважением,
эмир
0 ответов
Чтобы добавить дополнительные условия к существующему объекту запроса, вместо использования params.sqeuelize вы добавляете их непосредственно в объект запроса (поскольку он доступен через context.params.query), и поскольку вы используете ловушку before, объект запроса получает изменен перед казнью. В вашем примере должно быть что-то вроде:
if(single) {
context.params.query.push(
sequelize.and(
sequelize.where(
sequelize.col('"organisations->organisation_users"."roleId"'),
sequelize.col('"organisations->roles"."id"'),
),
sequelize.where(
sequelize.col('"organisations->organisation_users"."userId"'),
sequelize.col("users.id")
)
)
)
}
Вероятно, неправильный синтаксис, но идея в том, что добавить дополнительные условия прямо в объект запроса "перья". Надеюсь это поможет.