Skip to content

Listando contratos

Para listar os contratos, utilizamos a query Contract_list. Também é possível filtrar e ordenar os contratos passando propriedades do input da query de listagem.

Listagem padrão

Por padrão, a listagem de contratos retorna os contratos ordenados pela data de criação, do mais recente para o mais antigo. No exemplo abaixo, como não passamos nenhum input para a query, a listagem retornará os 10 primeiros contratos.

graphql
query ContractList {
  Contract_list {
    items {
      id
      slug
      counterpart
      counterparties
      createdAt
      updatedAt
      createdFromRequisitionId
      currency
      effectiveDate
      expirationDate
      isFormAnswered
      kind
      requestingArea
      termStatus
      totalAttachments
      type
      customFields {
        id
        label
        type
        value
        children {
          id
          label
          type
          value
        }
      }
      file {
        id
        fileName
        fileExtension
        contractId
      }
      parent {
        id
        file {
          id
          fileName
          fileExtension
          contractId
        }
      }
      amendments {
        id
        file {
          id
          fileName
          fileExtension
          contractId
        }
      }
      status {
        id
        category
        label
        updatedAt
        createdAt
        contractsCount
        isDefault
        isDisabled
        isInitial
      }
    }
  }
}
js
async function listContracts() {
  const response = await fetch('https://api.linte.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'key': '<seu-token>'
    },
    body: JSON.stringify({
      query: `
        query ContractList {
          Contract_list {
            items {
              id
              slug
              counterpart
              counterparties
              createdAt
              updatedAt
              createdFromRequisitionId
              currency
              effectiveDate
              expirationDate
              isFormAnswered
              kind
              requestingArea
              termStatus
              totalAttachments
              type
              customFields {
                id
                label
                type
                value
                children {
                  id
                  label
                  type
                  value
                }
              }
              file {
                id
                fileName
                fileExtension
                contractId
              }
              parent {
                id
                file {
                  id
                  fileName
                  fileExtension
                  contractId
                }
              }
              amendments {
                id
                file {
                  id
                  fileName
                  fileExtension
                  contractId
                }
              }
              status {
                id
                category
                label
                updatedAt
                createdAt
                contractsCount
                isDefault
                isDisabled
                isInitial
              }
            }
          }
        }
      `
    })
  });

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

listContracts();
python
import requests

def list_contracts():
    response = requests.post(
        'https://api.linte.com/graphql',
        headers={
            'Content-Type': 'application/json',
            'key': '<seu-token>'
        },
        json={
            'query': '''
                query ContractList {
                  Contract_list {
                    items {
                      id
                      slug
                      counterpart
                      counterparties
                      createdAt
                      updatedAt
                      createdFromRequisitionId
                      currency
                      effectiveDate
                      expirationDate
                      isFormAnswered
                      kind
                      requestingArea
                      termStatus
                      totalAttachments
                      type
                      customFields {
                        id
                        label
                        type
                        value
                        children {
                          id
                          label
                          type
                          value
                        }
                      }
                      file {
                        id
                        fileName
                        fileExtension
                        contractId
                      }
                      parent {
                        id
                        file {
                          id
                          fileName
                          fileExtension
                          contractId
                        }
                      }
                      amendments {
                        id
                        file {
                          id
                          fileName
                          fileExtension
                          contractId
                        }
                      }
                      status {
                        id
                        category
                        label
                        updatedAt
                        createdAt
                        contractsCount
                        isDefault
                        isDisabled
                        isInitial
                      }
                    }
                  }
                }
            '''
        }
    )
    
    print(response.json())

if __name__ == '__main__':
    list_contracts()

Listagem com paginação

Para paginar a listagem de contratos, utilizamos as propriedades skip e take do input da query de listagem. A propriedade skip define quantos contratos devem ser ignorados na listagem e a propriedade take define quantos contratos devem ser retornados.

graphql
query ContractListWithPagination {
  Contract_list(input: { take: 30, skip: 0 }) {
    items {
      id
      slug
      counterpart
      counterparties
      createdAt
      updatedAt
      createdFromRequisitionId
      currency
      effectiveDate
      expirationDate
      isFormAnswered
      kind
      requestingArea
      termStatus
      totalAttachments
      type
      customFields {
        id
        label
        type
        value
        children {
          id
          label
          type
          value
        }
      }
      file {
        id
        fileName
        fileExtension
        contractId
      }
      parent {
        id
        file {
          id
          fileName
          fileExtension
          contractId
        }
      }
      amendments {
        id
        file {
          id
          fileName
          fileExtension
          contractId
        }
      }
      status {
        id
        category
        label
        updatedAt
        createdAt
        contractsCount
        isDefault
        isDisabled
        isInitial
      }
    }
  }
}
js
async function listContractsWithPagination() {
  const response = await fetch('https://api.linte.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'key': '<seu-token>'
    },
    body: JSON.stringify({
      query: `
        query ContractListWithPagination {
          Contract_list(input: { take: 30, skip: 0 }) {
            items {
              id
              slug
              counterpart
              counterparties
              createdAt
              updatedAt
              createdFromRequisitionId
              currency
              effectiveDate
              expirationDate
              isFormAnswered
              kind
              requestingArea
              termStatus
              totalAttachments
              type
              customFields {
                id
                label
                type
                value
                children {
                  id
                  label
                  type
                  value
                }
              }
              file {
                id
                fileName
                fileExtension
                contractId
              }
              parent {
                id
                file {
                  id
                  fileName
                  fileExtension
                  contractId
                }
              }
              amendments {
                id
                file {
                  id
                  fileName
                  fileExtension
                  contractId
                }
              }
              status {
                id
                category
                label
                updatedAt
                createdAt
                contractsCount
                isDefault
                isDisabled
                isInitial
              }
            }
          }
        }
      `
    })
  });

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

listContractsWithPagination();
python
import requests

def list_contracts_with_pagination():
    response = requests.post(
        'https://api.linte.com/graphql',
        headers={
            'Content-Type': 'application/json',
            'key': '<seu-token>'
        },
        json={
            'query': '''
                query ContractListWithPagination {
                  Contract_list(input: { take: 30, skip: 0 }) {
                    items {
                      id
                      slug
                      counterpart
                      counterparties
                      createdAt
                      updatedAt
                      createdFromRequisitionId
                      currency
                      effectiveDate
                      expirationDate
                      isFormAnswered
                      kind
                      requestingArea
                      termStatus
                      totalAttachments
                      type
                      customFields {
                        id
                        label
                        type
                        value
                        children {
                          id
                          label
                          type
                          value
                        }
                      }
                      file {
                        id
                        fileName
                        fileExtension
                        contractId
                      }
                      parent {
                        id
                        file {
                          id
                          fileName
                          fileExtension
                          contractId
                        }
                      }
                      amendments {
                        id
                        file {
                          id
                          fileName
                          fileExtension
                          contractId
                        }
                      }
                      status {
                        id
                        category
                        label
                        updatedAt
                        createdAt
                        contractsCount
                        isDefault
                        isDisabled
                        isInitial
                      }
                    }
                  }
                }
            '''
        }
    )
    
    print(response.json())

if __name__ == '__main__':
    list_contracts_with_pagination()

Filtragem

Para filtrar a listagem de contratos, utilizamos a propriedade filter do input da query de listagem. A propriedade filter recebe um filtro que pode ser composto por uma ou mais condições e um operador lógico. As condições são compostas por uma propriedade, um comparador e um valor.

Propriedades de filtragem disponíveis

PropriedadeTipoDescrição
assigneeNameStringFiltra por nome do responsável
requesterNameStringFiltra por nome do solicitante
statusIdStringFiltra por ID do status
isFinishedBooleanFiltra por contratos finalizados ou não
contractSlugStringFiltra por slug do contrato
slaStatusStringFiltra por status do SLA (ON_TIME, LATE, VERY_LATE)
createdAtStartStringFiltra por data de criação inicial (YYYY-MM-DD)
createdAtEndStringFiltra por data de criação final (YYYY-MM-DD)
graphql
query ContractListWithFilters {
  Contract_list(
    input: {
      filter: {
        conditions: [
          {
            comparator: CONTAINS
            isCustomField: false
            property: "assigneeName"
            value: "João Silva"
          }
        ]
        logicOperator: OR
      }
    }
  ) {
    items {
      id
      slug
      assignee {
        id
        name
        email
      }
    }
  }
}
js
async function listContractsWithFilters() {
  const response = await fetch('https://api.linte.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'key': '<seu-token>'
    },
    body: JSON.stringify({
      query: `
        query ContractListWithFilters {
          Contract_list(
            input: {
              filter: {
                conditions: [
                  {
                    comparator: CONTAINS
                    isCustomField: false
                    property: "assigneeName"
                    value: "João Silva"
                  }
                ]
                logicOperator: OR
              }
            }
          ) {
            items {
              id
              slug
              assignee {
                id
                name
                email
              }
            }
          }
        }
      `
    })
  });

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

listContractsWithFilters();
python
import requests

def list_contracts_with_filters():
    response = requests.post(
        'https://api.linte.com/graphql',
        headers={
            'Content-Type': 'application/json',
            'key': '<seu-token>'
        },
        json={
            'query': '''
                query ContractListWithFilters {
                  Contract_list(
                    input: {
                      filter: {
                        conditions: [
                          {
                            comparator: CONTAINS
                            isCustomField: false
                            property: "assigneeName"
                            value: "João Silva"
                          }
                        ]
                        logicOperator: OR
                      }
                    }
                  ) {
                    items {
                      id
                      slug
                      assignee {
                        id
                        name
                        email
                      }
                    }
                  }
                }
            '''
        }
    )
    
    print(response.json())

if __name__ == '__main__':
    list_contracts_with_filters()