0
0
Fork 0
mirror of https://github.com/alerta/alerta.git synced 2025-05-16 22:25:13 +00:00

Add sub-query support to query parser ()

This commit is contained in:
Nick Satterly 2018-10-19 14:13:11 +02:00 committed by GitHub
parent aeba85a37a
commit 4511f098b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 315 additions and 314 deletions
alerta/database/backends/postgres

View file

@ -2,12 +2,15 @@ from collections import namedtuple
import pytz
from flask import g
from pyparsing import ParseException
from werkzeug.datastructures import MultiDict
from alerta.database.backends.postgres.parser import expression
from alerta.database.base import QueryBuilder
from alerta.exceptions import ApiError
from alerta.utils.format import DateTime
from .parser import query_parser
Query = namedtuple('Query', ['where', 'vars', 'sort', 'group'])
Query.__new__.__defaults__ = ('1=1', {}, 'last_receive_time', 'status') # type: ignore
@ -19,8 +22,11 @@ class QueryBuilderImpl(QueryBuilder):
# q
if params.get('q', None):
query = [repr(expression.parseString(params.get('q'))[0])]
qvars = dict()
try:
query = [query_parser(params['q'])]
qvars = dict()
except ParseException as e:
raise ApiError('Failed to parse query string.', 400, [e])
else:
query = ['1=1']
qvars = dict()