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.
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
}
}
}
}
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();
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.
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
}
}
}
}
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();
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
Propriedade | Tipo | Descrição |
---|---|---|
assigneeName | String | Filtra por nome do responsável |
requesterName | String | Filtra por nome do solicitante |
statusId | String | Filtra por ID do status |
isFinished | Boolean | Filtra por contratos finalizados ou não |
contractSlug | String | Filtra por slug do contrato |
slaStatus | String | Filtra por status do SLA (ON_TIME, LATE, VERY_LATE) |
createdAtStart | String | Filtra por data de criação inicial (YYYY-MM-DD) |
createdAtEnd | String | Filtra por data de criação final (YYYY-MM-DD) |
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
}
}
}
}
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();
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()