Как добавить обработчик ошибки в 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);
}
Если создается событие с таким же именем, вернуть ошибку и обработать ее. Что-нибудь вроде: Событие с таким именем уже существует.