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:

Caso você esteja em dúvida de como funciona o envio do documento para usar na sua integração, este repositório fornece mais informações e exemplos de como fazer o upload: https://github.com/jaydenseric/graphql-multipart-request-spec