Как вставить фильтр в строку запроса graphql? - PullRequest
0 голосов
/ 01 октября 2019

К сожалению, в документации нет хороших примеров того, как передать переменную в фильтр, насколько я могу судить. Вот пример запроса, который работает в синхронизации приложений:

 query listPayments {
        listPayments(filter: {residentId: {contains: "some_random_id"}}) {
      items {
        timestamp
        totalAmount
        feeAmount
        transactionId
        paymentTraceId
        paymentReferenceId
        paymentMethodId
      }
    }
 }

Но я понятия не имею, как передать его в мою функцию, которая затем взаимодействует со строкой шаблона:

export const getResidentPayments = async (residentId) => {
  console.log('getting payments...')
  try {
    paymentHistoryResponse = (await API.graphql(
      graphqlOperation(listPayments, {
        input: {id: residentId}
      }),
    )).data
    console.log('payment history res', paymentHistoryResponse);
    paymentHistoryResponse = JSON.parse(paymentHistoryResponse);
    return paymentHistoryResponse
  } catch (error) {
    console.log('got payment history err', error);
    throw error;
  }
}

const listPayments = ` query listPayments ($residentId: id ) {
  listPayments(filter: {residentId: {contains: $residentId}}) {
    items {
      timestamp
      totalAmount
      feeAmount
      transactionId
      paymentTraceId
      paymentReferenceId
      paymentMethodId
    }
  }
}
`;

Буду очень признателен, если кто-нибудь скажет мне, что я делаю неправильно, так как это, вероятно, довольно очевидная ошибка новичка. Я шокирован тем, что у graphql нет примера документации для этого, если я не ошибаюсь и в этом.

1 Ответ

0 голосов
/ 02 октября 2019

AppSync создает множество функциональных возможностей для вас. Что такое тип определения для listPayments?

Вы сделали фильтр ввода для listPayments, который принимает поле и строку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...