Skip to main content

Consulta de criação de cards com GraphQL


houston-santos

Bom dia!

Gostaria de saber como posso obter as informações do pipe ou cards como id dos campos e etc. A intenção é obter as informações necessárias para criar uma query que crie um card usando a API. Tentei a consulta abaixa mais sem sucesso:

payload = {"query": "{card(id:\"438346960\")}"}

 

Estou usando python.

7 replies

tsartori
Forum|alt.badge.img+4
  • Superuser
  • 157 replies
  • August 10, 2021

Opa tudo bem @houston-santos ?

Podes executar esta query aqui:

{"query": """{
  allCards(pipeId: ******************) { 
    edges { node { id fields { name value } createdAt}
  } pageInfo {endCursor startCursor}}
}"""}

O seu pipe ID é o que aparece na URL quando está dentro do pipe.

Qualquer dúvida só me mencionar aqui que posso ajudar.


tsartori
Forum|alt.badge.img+4
  • Superuser
  • 157 replies
  • August 10, 2021

Caso queria outros dados, e apertar um tab na IDE ele te sugere todos os comandos disponíveis para aquela hierarquia que tu está. 


houston-santos
  • Author
  • Regular Participant
  • 1 reply
  • August 10, 2021

Grato pelo retorno @tsartori!

 

Gostaria de tirar mais algumas duvidas. Eu conseguir realizar a criação do card usando a query abaixo, adicionando { card { id title url } } ao final, tipo colocando o return, bem diferente do que encontrei aqui no forum e na documentação, é isto mesmo tem que passar está informação?

query que vejo no forum: 

payload = {"query": "mutation { createCard ( input: { pipe_id: \"XXXXXXXX\" fields_attributes: [ { field_id: \"what_needs_to_be_done\", field_value: \"NOVO TESTE\" } { field_id: \"estimate\", field_value: \"1\" } { field_id: \"more_information\", field_value: \"REALISANDO NOVO TESTE\" } { field_id: \"type\", field_value: \"305585433\" } ] } ) }" }

e a query que utilizei, sem isso me da um erro:

payload = {"query": "mutation { createCard ( input: { pipe_id: \"XXXXXXXX\" fields_attributes: [ { field_id: \"what_needs_to_be_done\", field_value: \"NOVO TESTE\" } { field_id: \"estimate\", field_value: \"1\" } { field_id: \"more_information\", field_value: \"REALISANDO NOVO TESTE\" } { field_id: \"type\", field_value: \"305585433\" } ] } ) { card { id title url } } }" }

 

É possível realizar a criação de card usando webhook(consumir) no lugar da API?

 

Em relação a sua resposta; "Caso queria outros dados, e apertar um tab na IDE ele te sugere todos os comandos disponíveis para aquela hierarquia que tu está." seria tipo a imagem em anexo. não conseguir entender o tab, se for isso no VScode não rola, é diferente, ou seria outro recurso?

 


tsartori
Forum|alt.badge.img+4
  • Superuser
  • 157 replies
  • August 10, 2021

Opa, @houston-santos vamos lá.

Eu nunca tentei usar webhook para alimentar, mas creio que não seja possível pela maneira com que o graphql é estruturado.

Sobre tua query, nao achei nenhum erro, mas utilizo pouco este processo de mutation, então não sou a melhor pessoa do mundo para te ajudar. 

 


tsartori
Forum|alt.badge.img+4
  • Superuser
  • 157 replies
  • August 10, 2021

Esqueci de mencionar o ultimo ponto

Sobre o tab, achei que estivesse usando a IDE de testar as querys do próprio Pipefy, lá ele te disponibiliza as possibilidades, mas está direto no VS Code


tsartori
Forum|alt.badge.img+4
  • Superuser
  • 157 replies
  • August 10, 2021
tsartori wrote:

Opa, @houston-santos vamos lá.

Eu nunca tentei usar webhook para alimentar, mas creio que não seja possível pela maneira com que o graphql é estruturado.

Sobre tua query, nao achei nenhum erro, mas utilizo pouco este processo de mutation, então não sou a melhor pessoa do mundo para te ajudar. 

 

Talvez se tentar fazer o mutation através de um json funcione melhor.


Diego Anselmo Saiotti

@houston-santos 
Como você está utilizando python, você vai precisar passar um parâmetro para receber o retorno do card criado, a response. Quando criei a minha mutation, utilizei o seguinte: {clientMutationId card {id title }} , você precisa passar esta instrução ao final, para que funcione.

Se não a utilizar, você receberá este erro:

{"errors":[{"message":"Field must have selections (field 'createCard' returns CreateCardPayload but has no selections. Did you mean 'createCard { ... }'?)","locations":[{"line":1,"column":11}],"path":["mutation","createCard"],"extensions":{"code":"selectionMismatch","nodeName":"field 'createCard'","typeName":"CreateCardPayload"}}]}


Quando criei a minha mutation, utilizei o seguinte com python:

import requests

url = https://api.pipefy.com/graphql

payload = {"query""mutation{ createCard( input: { pipe_id: \"ID_PIPE\" fields_attributes: [     {field_id: \"id_field_1\", field_value: \"Colaborador Libraport\"}   {field_id: \"id_field_2\", field_value: \"404475106\"}   {field_id: \"id_field_3\", field_value: \"id_field_4\"}   {field_id: \"contato\", field_value: \"id_field_5\"}   {field_id: \"id_field_6\", field_value: \"id_field_7\"}   {field_id: \"id_field_8\", field_value: \"id_field_9\"}   {field_id: \"id_field_10\", field_value: \"id_field_11\"}   {field_id: \"id_field_12\", field_value: \"id_field_13\"} ] } ) {clientMutationId card {id title }}}"}

headers = {

"Authorization": "Bearer ID_BEARER",

"Content-Type": "application/json"

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

Já realizei consultas com cards, através de webhooks, mas não tentei criação ainda. Mas acredito que desde que você passe os headers corretos, e adapte de query para mutation, você não terá problemas.

 

Quando utilizei o webhook, o payload foi bem simples:
const body = {"query": "{card(id: \"id_card\") {phases_history {phase {name}firstTimeIn lastTimeOut}}}"}

 

e o header foi:
headers = {

"Authorization": "Bearer ID_BEARER",

"Content-Type": "application/json"

Lembrando que o Bearer precisa estar escrito desta forma, antes do bearer_id em si.


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings