Skip to content

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.

graphql
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
  }
}
js
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);
}
python
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.

graphql
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
  }
}
js
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);
}
python
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

PropriedadeTipoDescrição
assigneeNameStringFiltra por nome do responsável
requesterNameStringFiltra por nome do solicitante
statusIdStringFiltra por ID do status
isFinishedBooleanFiltra por demandas finalizadas 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 RequisitionListWithFilters($filter: RequisitionListFilter) {
  Requisition_list(input: { filter: $filter }) {
    items {
      id
      assignee {
        id
        name
        email
      }
      slaStatus
      slaDate
    }
    totalItems
  }
}
js
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);
python
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)