Listando demandas
Para listar as demandas, utilizamos a query requisition_list
. Também é possível filtrar e ordenar as demandas passando propriedades do input
da query de listagem.
Listagem padrão
Por padrão, a listagem de demandas retorna as demandas ordenadas pela data de criação, da mais recente para a mais antiga. No exemplo abaixo, como não passamos nenhum input para a query, a listagem retornará as 10 primeiras demandas.
query RequisitionList {
Requisition_list {
items {
id
assignee {
id
email
area
name
}
contractSlug
finishedBy {
id
email
area
name
}
slaDate
requester {
id
email
area
name
}
slaStatus
statusCategoryId
statusData {
id
isDefault
isDisabled
isInitial
label
category {
id
isCustomizable
}
organizationForm {
id
name
formId
}
requisitionsCount
}
timeSpentToFinish
customFields {
id
children {
id
label
type
value
customFieldId
}
label
type
value
}
}
totalItems
}
}
async function listRequisitions() {
const response = await fetch('https://api.linte.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'key': '<seu-token>'
},
body: JSON.stringify({
query: `
query RequisitionList {
Requisition_list {
items {
id
assignee {
id
email
area
name
}
contractSlug
finishedBy {
id
email
area
name
}
slaDate
requester {
id
email
area
name
}
slaStatus
statusCategoryId
statusData {
id
isDefault
isDisabled
isInitial
label
category {
id
isCustomizable
}
organizationForm {
id
name
formId
}
requisitionsCount
}
timeSpentToFinish
customFields {
id
children {
id
label
type
value
customFieldId
}
label
type
value
}
}
totalItems
}
}
`
})
});
const result = await response.json();
console.log(result);
}
import requests
def list_requisitions():
response = requests.post(
'https://api.linte.com/graphql',
headers={
'Content-Type': 'application/json',
'key': '<seu-token>'
},
json={
'query': '''
query RequisitionList {
Requisition_list {
items {
id
assignee {
id
email
area
name
}
contractSlug
finishedBy {
id
email
area
name
}
slaDate
requester {
id
email
area
name
}
slaStatus
statusCategoryId
statusData {
id
isDefault
isDisabled
isInitial
label
category {
id
isCustomizable
}
organizationForm {
id
name
formId
}
requisitionsCount
}
timeSpentToFinish
customFields {
id
children {
id
label
type
value
customFieldId
}
label
type
value
}
}
totalItems
}
}
'''
}
)
print(response.json())
if __name__ == '__main__':
list_requisitions()
Paginação
Para paginar a listagem de demandas, utilizamos as propriedades skip
e take
do input
da query de listagem. O skip
indica quantos itens devem ser pulados e o take
indica quantos itens devem ser retornados.
query RequisitionListWithPagination($skip: Int, $take: Int) {
Requisition_list(input: { skip: $skip, take: $take }) {
items {
id
assignee {
id
email
area
name
}
contractSlug
finishedBy {
id
email
area
name
}
slaDate
requester {
id
email
area
name
}
slaStatus
statusCategoryId
statusData {
id
isDefault
isDisabled
isInitial
label
category {
id
isCustomizable
}
organizationForm {
id
name
formId
}
requisitionsCount
}
timeSpentToFinish
customFields {
id
children {
id
label
type
value
customFieldId
}
label
type
value
}
}
totalItems
}
}
async function listRequisitionsWithPagination(skip = 0, take = 10) {
const response = await fetch('https://api.linte.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'key': '<seu-token>'
},
body: JSON.stringify({
query: `
query RequisitionListWithPagination($skip: Int, $take: Int) {
Requisition_list(input: { skip: $skip, take: $take }) {
items {
id
assignee {
id
email
area
name
}
contractSlug
finishedBy {
id
email
area
name
}
slaDate
requester {
id
email
area
name
}
slaStatus
statusCategoryId
statusData {
id
isDefault
isDisabled
isInitial
label
category {
id
isCustomizable
}
organizationForm {
id
name
formId
}
requisitionsCount
}
timeSpentToFinish
customFields {
id
children {
id
label
type
value
customFieldId
}
label
type
value
}
}
totalItems
}
}
`,
variables: {
skip,
take
}
})
});
const result = await response.json();
console.log(result);
}
import requests
def list_requisitions_with_pagination(skip=0, take=10):
response = requests.post(
'https://api.linte.com/graphql',
headers={
'Content-Type': 'application/json',
'key': '<seu-token>'
},
json={
'query': '''
query RequisitionListWithPagination($skip: Int, $take: Int) {
Requisition_list(input: { skip: $skip, take: $take }) {
items {
id
assignee {
id
email
area
name
}
contractSlug
finishedBy {
id
email
area
name
}
slaDate
requester {
id
email
area
name
}
slaStatus
statusCategoryId
statusData {
id
isDefault
isDisabled
isInitial
label
category {
id
isCustomizable
}
organizationForm {
id
name
formId
}
requisitionsCount
}
timeSpentToFinish
customFields {
id
children {
id
label
type
value
customFieldId
}
label
type
value
}
}
totalItems
}
}
''',
'variables': {
'skip': skip,
'take': take
}
}
)
print(response.json())
if __name__ == '__main__':
list_requisitions_with_pagination()
Filtragem
Para filtrar a listagem de demandas, 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
.
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 demandas finalizadas 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 RequisitionListWithFilters($filter: RequisitionListFilter) {
Requisition_list(input: { filter: $filter }) {
items {
id
assignee {
id
name
email
}
slaStatus
slaDate
}
totalItems
}
}
async function listRequisitionsWithFilters(filter) {
const response = await fetch('https://api.linte.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'key': '<seu-token>'
},
body: JSON.stringify({
query: `
query RequisitionListWithFilters($filter: RequisitionListFilter) {
Requisition_list(input: { filter: $filter }) {
items {
id
assignee {
id
name
email
}
slaStatus
slaDate
}
totalItems
}
}
`,
variables: {
filter
}
})
});
const result = await response.json();
console.log(result);
}
// Exemplo de uso
const filter = {
assigneeName: 'João Silva',
slaStatus: 'LATE'
};
listRequisitionsWithFilters(filter);
import requests
def list_requisitions_with_filters(filter_data):
response = requests.post(
'https://api.linte.com/graphql',
headers={
'Content-Type': 'application/json',
'key': '<seu-token>'
},
json={
'query': '''
query RequisitionListWithFilters($filter: RequisitionListFilter) {
Requisition_list(input: { filter: $filter }) {
items {
id
assignee {
id
name
email
}
slaStatus
slaDate
}
totalItems
}
}
''',
'variables': {
'filter': filter_data
}
}
)
print(response.json())
if __name__ == '__main__':
# Exemplo de uso
filter_data = {
'assigneeName': 'João Silva',
'slaStatus': 'LATE'
}
list_requisitions_with_filters(filter_data)