Skip to content

Criando e/ou atualizando informações da demanda

Para criar/atualizar um campo dentro de informações da demanda, utilizamos da mutation Requisition_upsertCustomField. Essa mutation trabalha com o conceito de upsert, ou seja, caso o campo não exista, ele será criado, caso exista, ele será atualizado.

O Input dessa mutation é composto por:

PropriedadeDescriçãoValor esperado
idID do campostring - UUID V4
labelLabel do campostring
requisitionIdID da demandastring
typeTipo do valor do campostring - TEXT, NUMBER, BOOLEAN, DATE
valueValor do campo, conforme especificado no typestring - Caso o tipo seja BOOLEAN, o valor deve ser true ou false. Caso o tipo seja DATE, o valor deve ser uma data no formato yyyy-MM-ddTHH:mm:ss.000Z (ex: 2021-01-01T00:00:00.000Z)
originRefIdID do campo original. Esse Id só é visível em campos que fom criados a partir do preenchimento de algum formulário interno.string

Observações

Caso não esteja familiarizado com o conceito de upsert, ele é uma operação que cria um novo registro caso ele não exista, ou atualiza um registro caso ele exista.

Criando informações na demanda

Para criar um novo campo dentro de informações da demanda,

js
function creatingRequisitionInfo() {
  fetch('https://api.linte.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      key: '<token>'
    },
    body: JSON.stringify({
      query: `
        mutation {
          Requisition_upsertCustomField(input: {
            id: <UUID>
            label: <LABEL>
            requisitionId: <ID_DA_DEMANDA>
            type: <TIPO_DO_VALOR>
            value: <VALOR>
            originRefId: <ID_DO_CAMPO_ORIGINAL>
          }) {
            id
            customFields {
              id
              label
              type
              value
            }
          }
        }
      `
    })
  })
    .then(res => res.json())
    .then(result => console.log(result));
}

creatingRequisitionInfo();

Atualizando informações da demanda

Para atualizar um campo dentro de informações da demanda, basta utilizar o mesmo código da criação, porém, o campo id deve ser o mesmo do campo que deseja atualizar.

js
function updatingRequisitionInfo() {
  fetch('https://api.linte.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      key: '<token>'
    },
    body: JSON.stringify({
      query: `
        mutation {
          Requisition_upsertCustomField(input: {
            id: <UUID>
            label: <LABEL>
            requisitionId: <ID_DA_DEMANDA>
            type: <TIPO_DO_VALOR>
            value: <VALOR>
          }) {
            id
            customFields {
              id
              label
              type
              value
              originRefId
            }
          }
        }
      `
    })
  })
    .then(res => res.json())
    .then(result => console.log(result));
}

updatingRequisitionInfo();

Atualizando campos customizados

Para atualizar o valor de um campo customizado, basta utilizar o mesmo código da criação, porém, o campo id deve ser o mesmo do campo que deseja atualizar.

Propriedades de campos customizados

PropriedadeTipoDescrição
idStringID do campo (UUID V4).
labelStringLabel do campo.
requisitionIdStringID da demanda.
typeStringTipo do valor do campo (TEXT, NUMBER, BOOLEAN, DATE).
valueStringValor do campo. Para BOOLEAN, use "true" ou "false". Para DATE, use o formato YYYY-MM-DDTHH:mm:ss.000Z (ex: "2024-12-31T00:00:00.000Z").
originRefIdStringID do campo original. Esse Id só é visível em campos que fom criados a partir do preenchimento de algum formulário interno.
graphql
mutation UpsertRequisitionCustomField(
  $input: Requisition_UpsertCustomField_Input!
) {
  Requisition_upsertCustomField(input: $input) {
    id
    label
    type
    value
    updatedAt
    originRefId
  }
}
js
async function upsertRequisitionCustomField(input) {
  const response = await fetch('https://api.linte.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      key: '<seu-token>'
    },
    body: JSON.stringify({
      query: `
        mutation UpsertRequisitionCustomField {
          Requisition_upsertCustomField(input: {
            id: <UUID>
            label: <LABEL>
            requisitionId: <ID_DA_DEMANDA>
            type: <TIPO_DO_VALOR>
            value: <VALOR>
            originRefId: <ID_DO_CAMPO_ORIGINAL>
          }) {
            id
            label
            type
            value
            updatedAt
            originRefId
          }
        }
      `,
      variables: {
        input
      }
    })
  });

  const result = await response.json();
  console.log(result);
}

// Exemplo de uso
const input = {
  id: '<uuid-v4>',
  label: 'CPF',
  requisitionId: '<id-da-demanda>',
  type: 'TEXT',
  value: '123.456.789-00',
  originRefId: '<id-do-campo-original>'
};

upsertRequisitionCustomField(input);
python
import requests

def upsert_requisition_custom_field(input_data):
    response = requests.post(
        'https://api.linte.com/graphql',
        headers={
            'Content-Type': 'application/json',
            'key': '<seu-token>'
        },
        json={
            'query': '''
                mutation UpsertRequisitionCustomField($input: Requisition_UpsertCustomField_Input!) {
                  Requisition_upsertCustomField(input: $input) {
                    id
                    label
                    type
                    value
                    updatedAt
                  }
                }
            ''',
            'variables': {
                'input': input_data
            }
        }
    )

    print(response.json())

if __name__ == '__main__':
    # Exemplo de uso
    input_data = {
        'id': '<uuid-v4>',
        'label': 'CPF',
        'requisitionId': '<id-da-demanda>',
        'type': 'TEXT',
        'value': '123.456.789-00'
    }

    upsert_requisition_custom_field(input_data)