Relatório Construtor de Consultas Estáticas
Report Static Query Builder
Visão Geral
O MiniQueryBuilder é uma interface fluente para construção de consultas SQL-like no Gaio Data OS. Ele fornece uma forma simples e intuitiva de construir queries com cláusulas como SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT e OFFSET.
Uso Básico
// Acesse o query builder através de context.query
const results = await context.query
.select(['id', 'name', 'created_at'])
.from('users')
.filter('status', 'eq', 'active')
.orderBy('created_at', 'desc')
.limit(100)
.run();Referência da API
Construtor
O query builder é acessado através do objeto context:
// Não é necessário criar uma instância - use context.query
const query = context.query;Métodos
select(fields: string[])
Especifica os campos a serem selecionados na query.
from(table: string)
Especifica a tabela de origem da consulta. Este método é obrigatório.
filter(field: string, operator: FilterOperator, value: any)
Adiciona uma condição de filtro à consulta.
Operadores disponíveis:
eq– igualneq– diferentegt– maior quegte– maior ou iguallt– menor quelte– menor ou iguallike– correspondência de padrão com %ilike– correspondência de padrão sem diferenciar maiúsculas/minúsculasin– dentro de uma lista de valoresis– verificação de nullcs– contém (para arrays)cd– contido em (para arrays)ov– sobreposição (para arrays)fts– busca por texto completoor– OU lógicoand– E lógico
groupBy(fields: string[])
Especifica os campos para agrupamento.
orderBy(field: string, direction: 'asc' | 'desc' = 'asc', nullsPosition?: 'first' | 'last')
Adiciona cláusula ORDER BY à consulta.
limit(limit: number)
Define o número máximo de linhas a retornar.
offset(offset: number)
Define o número de linhas a serem ignoradas.
run(): Promise<GenericType[]>
Executa a consulta e retorna uma Promise que resolve para um array de resultados. Este é o método principal para executar a query e recuperar os dados.
Valor de Retorno
Retorna uma Promise que resolve para um array de objetos (GenericType[]) representando os resultados da consulta.
Cada objeto no array corresponde a uma linha do resultado, com propriedades que correspondem às colunas selecionadas.
Validação
O método run() realiza as seguintes validações antes de executar a consulta:
Garante que o limit seja um número
Garante que o limit não ultrapasse 10.000 linhas
Verifica implicitamente se a cláusula FROM foi especificada
Tratamento de Erros
O método run() pode lançar erros nos seguintes casos:
Se o limit não for um número:
Error('Limit must be a number')Se o limit exceder 10.000:
Error('Limit must be less than 10000')Se a cláusula FROM não for especificada:
Error('FROM clause is required. Use .from() to specify a table.')Se a requisição à API falhar: O erro retornado pelo cliente da API será propagado.
Detalhes de Implementação
O método run() envia uma requisição POST para api/table/query com o schema da consulta e os dados da tarefa.
Em seguida, extrai e retorna os dados da resposta.
Exemplos
Query Básica
Query com Filtro
Query com Agregação
Paginação
Atualizado