Criando um documento

Como criar um documento/enviar um documento para assinatura.

A criação de documentos difere um pouco das outras mutations por ter o upload de um arquivo. Primeiramente, vamos precisar escrever a mutation:

mutation CreateDocumentMutation(
$document: DocumentInput!, # Definição das variáveis $document,
$signers: [SignerInput!]!, # $signers e $file, com seus respectivos
$file: Upload! # tipos. (Os "!" indicam que são
) { # parâmetros obrigatórios)
createDocument(
document: $document, # Passa para os parâmetros da mutation o
signers: $signers, # valor das variáveis.
file: $file #
) {
id
name
refusable
sortable
created_at
signatures {
public_id
name
email
created_at
action { name }
link { short_link }
user { id name email }
}
}
}

Após, precisamos dos valores das variáveis definidas na mutation em um JSON:

/*
Abaixo, um signatário receberá o link de assinatura por email,
por ter sido passado o "email" e, para o que passou "name",
será retornado o atributo "link" no documento com o link de
assinatura.
*/
{
"document": {
"name": "Contrato de marketing"
},
"signers": [{
"email": "troque-esse-email-que-e-publico@tuamaeaquelaursa.com",
"action": "SIGN"
}, {
"name": "Ronaldo",
"action": "SIGN"
}]
}

Percebeu que não foi colocado nenhum valor para a variável $file? Pois é, como é realizado o upload desse arquivo, a requisição precisa ser enviada como multipart/form-data, dessa forma o arquivo precisa ser um pouco diferente. Você pode fazer isso direto no Altair:

Você pode conferir o que é cada um desses parâmetros direto na documentação completa da API GraphQL, no menu Docs do Altair. Se você não sabe como fazer isso, confira o nosso tutorial:

Se você quer sair integrando e o Altair não está ajudando (você pode copiar a requisição como cURL no Altair), confira algumas SDKs/bibliotecas que podem ajudar: https://github.com/chentsulin/awesome-graphql