Braintree GraphQL — расчесывание запроса с помощью метода оплаты платежей и мутаций UpdateCustomer

#javascript #graphql #braintree #mutation

Вопрос:

Я нахожусь в процессе миграции из Брейнтри Node.js API для GraphQL. Метод braintree.gateway.transaction.sale(параметры) старого API принимает параметр с объектом клиента со свойствами: имя, фамилия, адрес электронной почты и телефон.

В API GraphQL Braintree эта мутация взимает плату за способ оплаты…

 mutation chargePaymentMethod($input: ChargePaymentMethodInput!) {
  chargePaymentMethod(input: $input) {
    transaction {
      id
      status
    }
  }
}
 
 {
  "input": {
    "paymentMethodId": "fake-valid-nonce",
    "transaction": {
      "amount": "1.00"
    }
  }
}
 

Платежныйметодинпут.TransactionInput поддерживает идентификатор пользователя, но не тип пользовательского ввода, который имеет имя, фамилию и т. Д. как в старом методе braintree.gateway.transaction.sale ().

Я предполагаю, что мне нужно сделать запрос, чтобы узнать, существует ли клиент. Если нет, используйте мутацию CreateCustomer. Если они это сделают, используйте UpdateCustomer. Затем получите идентификатор клиента и передайте его в мутацию метода оплаты платежей.

Есть ли способ смешать запрос, чтобы узнать, существует ли клиент с несколькими мутациями в одном запросе (вложенные мутации)? На данный момент примеров крайне мало.

Если мне придется выполнять отдельные запросы, я, вероятно, буду придерживаться старого API, так как он будет более эффективным.