Оператор Feathers-Sequelize Where и параметр запроса

У меня есть следующий запрос перьев-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 } }))

Объект запроса опущен, так как в приведенном выше запросе продолжения я устанавливаю свой собственный оператор where. Если я удалю оператор where, будет работать объект запроса. Как мне использовать собственное выражение where, а также включить объект запроса перьев?

Спасибо! С уважением,

Эмир


person eGlu    schedule 03.08.2018    source источник


Ответы (1)


Чтобы добавить дополнительные условия к существующему объекту запроса, вместо использования params.sqeuelize вы добавляете их непосредственно в объект запроса (поскольку он доступен через context.params. query) и, поскольку вы используете хук перед выполнением, объект запроса модифицируется перед выполнением. В вашем примере должно быть что-то вроде:

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")
        )
      )
   )
}

Вероятно, неправильный синтаксис, но идея такова: добавить дополнительные условия непосредственно в объект запроса перьев. Надеюсь это поможет.

person Rúbel Mujica    schedule 24.05.2019