Solved

Incluir um Card em um Pipe usando C# ou VbScript

  • 16 October 2020
  • 4 replies
  • 729 views

Userlevel 1

Olá pessoal ! Alguém tem algum exemplo de criação de um Card em um Pipe usando C#, VbScript ou POSTMAN? 
Usando o GraphiQL IDE com o comando:
mutation {
createCard(input: {
pipe_id: 301418172
fields_attributes: [
{field_id: "produto", field_value: "produto1"}
{field_id: "valor_produto", field_value: "1000"}
]
})
}
funciona OK.

icon

Best answer by Marcos Carvalho 19 October 2020, 19:01

View original

4 replies

Userlevel 6
Badge +6

Olá Alexei, como vai?

 

Seguem aqui alguns exemplos da sua mutation.

 

Exemplo em cURL: 

curl --request POST \
--url https://api.pipefy.com/graphql \
--header 'authorization: Bearer TOKEN' \
--header 'content-type: application/json' \
--data '{"query":"mutation { createCard(input: { pipe_id: 301418172 fields_attributes: [ {field_id: \"produto\", field_value: \"produto1\"} {field_id: \"valor_produto\", field_value: \"1000\"} ] }) }"}'

 

 

Exemplo em C# gerado pelo Postman:

 

var client = new RestClient("https://api.pipefy.com/graphql");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Bearer TOKEN");
request.AddHeader("content-type", "application/json");
request.AddHeader("Cookie", "__cfduid=d3519e0f12eb3d34cafaa86d9190276741602613283");
request.AddParameter("application/json", "", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

 

 

Caso queira testar pelo Postman, ele já suporta requests em GraphQL desta forma:

 

 

 

 

Caso queira converter para algumas linguagens como Ruby, Python, Js e Node, pode conferir nossa documentação que conta com um console para conversão para estas linguagens.

 

https://developers.pipefy.com/reference#graphql-endpoint

 

Espero que te ajude =D 

 

Userlevel 1

Olá Marcos,

Obrigado pela sua resposta! Testei no POSTMAN e o status já mudou para 200OK mas mesmo assim retornou erro.

POST https://api.pipefy.com/graphql
Body (row): {"query":"mutation { createCard(input: { pipe_id: 301418172 fields_attributes: [ {field_id: \"produto\", field_value: \"produto1\"} {field_id: \"valor_produto\", field_value: \"1000\"} ] }) }"}
Headers:
content-type application/json
Authorization:
Bearer Token ……..

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


Quando eu uso a ide no endereço https://app.pipefy.com/graphiql passando o mesmo comando

mutation {
  createCard(input: {
    pipe_id: 301418172
    fields_attributes: [
      {field_id: "produto", field_value: "produto1"}
      {field_id: "valor_produto", field_value: "1000"}
    ]
  }) {
    clientMutationId
  }
}

O card é incluído sem problemas.

Você saberia dizer se falta fazer algo?

Userlevel 6
Badge +6

Olá Alexei, 

 

Você deve trazer o payload de retorno da mutation uma vez que você está testando em outra aplicação.

 

Veja que se testar no GraphiQL ele autocompleta para você com o “clientMutationId” e no Postman não.

 

Então você deve colocar ao final da sua mutation alguns dados para trazer a confirmação da requisição como o “clienMutationId” e também os dados do card como id e title:

 

{"query":"mutation {createCard(input:{pipe_id: 301418172, fields_attributes: [{field_id: \"produto\", field_value: \"produto1\"} {field_id: \"valor_produto\", field_value: \"1000\"}]}){clientMutationId card {id title }}}"}

 

Userlevel 1

Olá Marcos, obrigado pelo apoio!!! Deu certo agora !!!

Reply