Как добавить обработчик ошибки в graphene мутацию и обработать ее на стороне клиента для вывода сообщения об ошибке?

Имя name события event уникально, нужно добавить обработчик в этот код:

class CreateEvent(graphene.Mutation):
  class Arguments:
    input = EventInput(required=True)

  ok = graphene.Boolean()
  event = graphene.Field(EventType)

  @staticmethod
  def mutate(root, info, input=None):
    ok = True
    event_instance = Event(name=input.name, start=input.start, end=input.end)
    event_instance.save()

    return CreateEvent(ok=ok, event=event_instance)

На стороне клиента такой запрос:

async createEvent(eventData) {
  try {
    const result = await axios({
      method: "POST",
      url: "http://localhost:8000/graphql",
      data: {
        query: `
          mutation createEvent($input: EventInput!) {
            createEvent(input: $input) {
              ok
              event {
                id
                name
                start
                end
              }
            }
          }
        `,
        variables: {
          input: {
            name: eventData.name,
            start: eventData.start,
            end: eventData.end 
          }
        }
      }
    });
    this.events.push(result.data.data.createEvent.event);
  } catch(error) {
    console.error(error);
  }    

Если создается событие с таким же именем, вернуть ошибку и обработать ее. Что-нибудь вроде: Событие с таким именем уже существует.


Ответы (0 шт):