Итак, я работаю с Prisma уже пару недель и добился значительного прогресса, и мне нравится настройка / простота использования, позволяющая реализовать множество расширенных функций.
Я сейчас пытаюсь реализовать сортировку по полям таблицы.
У меня есть варианты (среди других полей) сортировки по term_ASC
и term_DESC
.
Предположим следующее определение запроса: MyConnection(filter: String, order: MyOrderByInput, limit: Int, offset: Int): MyConnection!
Если я запускаю следующий код на игровой площадке GraphQL, он работает нормально:
query myPaginatedResults {
myConnection(filter: "lorem", limit: 25, offset: 0, order: term_ASC) {
aggregate {
count
}
edges {
node {
id
term
}
}
}
}
Основной момент/вопрос... Использование term_ASC/DESC работает на игровой площадке, но как мне передать это в моем JS?
Если я заключу его в кавычки "term_ASC", вылезут ошибки, а если не заключить, то он (resolver/api) выдает ошибки о явно неопределенной переменной.
const myConnection = (parent, args, context, info) => {
const where = args.filter
? {
OR: [
{ term_contains: args.filter },
{ type_contains: args.filter },
{ id_in: args.filter },
],
} : {}
const order = args.order;
// const order = `title_ASC`;
const skip = args.offset ? args.offset : 0;
const limit = args.limit ? args.limit : 50;
// console.log(context.db.query);
const results = context.db.query.myDbConnection({
where,
orderBy: order,
first: limit,
skip: skip,
}, info);
return results;
}
Итак, часть, где я пытаюсь проверить, как передать эту переменную orderBy через переменную (жестко закодированную, закомментированную в этом примере) или перед передачей в распознаватель через мой args.order, я не могу понять, как это следует пройти.