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.queryconstresults=awaitcontext.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.queryconstquery=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.
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.