strawberry-graphql/strawberry-django

Enable atomic nested mutations

Open

#628 opened on Sep 13, 2024

View on GitHub
 (3 comments) (4 reactions) (0 assignees)Python (152 forks)auto 404
enhancementhelp wantedproposal

Repository metrics

Stars
 (496 stars)
PR merge metrics
 (PR metrics pending)

Description

Strawberry supports serialization for nested mutations but Strawberry-Django doesn't seem to be able do it in an atomic way

Feature Request Type

  • New behavior

Description

In the below example, I expect these things to happen in an atomic way so that if a credit card charge fails we do have to go back out previous transactions.

I've seen similar offers from other libraries such as Prisma.

mutation (
  $createInvoice: CreateInvoiceInput!
  $chargeCreditCard: ChargeCreditCardInput!
  atomic: true
) {
  createInvoice: invoice {
    createInvoice(input: $createInvoice) {
      id
    }
  }

  chargeCreditCard: invoice {
    chargeCreditCard(input: $chargeCreditCard) {
      id
    }
  }
}

Contributor guide