feat(chalice): refactored autocomplete
This commit is contained in:
parent
66a62edff4
commit
fd373a057f
3 changed files with 18 additions and 13 deletions
|
|
@ -1,7 +1,9 @@
|
|||
import schemas
|
||||
from chalicelib.utils import helper
|
||||
from chalicelib.utils import pg_client
|
||||
import schemas
|
||||
from chalicelib.utils.event_filter_definition import SupportedFilter, Event
|
||||
from chalicelib.utils.event_filter_definition import Event
|
||||
|
||||
TABLE = "public.autocomplete"
|
||||
|
||||
|
||||
def __get_autocomplete_table(value, project_id):
|
||||
|
|
@ -19,14 +21,14 @@ def __get_autocomplete_table(value, project_id):
|
|||
sub_queries = []
|
||||
for e in autocomplete_events:
|
||||
sub_queries.append(f"""(SELECT type, value
|
||||
FROM public.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE project_id = %(project_id)s
|
||||
AND type= '{e}'
|
||||
AND value ILIKE %(svalue)s
|
||||
LIMIT 5)""")
|
||||
if len(value) > 2:
|
||||
sub_queries.append(f"""(SELECT type, value
|
||||
FROM public.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE project_id = %(project_id)s
|
||||
AND type= '{e}'
|
||||
AND value ILIKE %(value)s
|
||||
|
|
@ -51,7 +53,7 @@ def __get_autocomplete_table(value, project_id):
|
|||
def __generic_query(typename, value_length=None):
|
||||
if value_length is None or value_length > 2:
|
||||
return f"""(SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
AND type='{typename}'
|
||||
|
|
@ -60,7 +62,7 @@ def __generic_query(typename, value_length=None):
|
|||
LIMIT 5)
|
||||
UNION DISTINCT
|
||||
(SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
AND type='{typename}'
|
||||
|
|
@ -68,7 +70,7 @@ def __generic_query(typename, value_length=None):
|
|||
ORDER BY value
|
||||
LIMIT 5);"""
|
||||
return f"""SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
AND type='{typename}'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from decouple import config
|
||||
|
||||
if config("LEGACY_SEARCH", cast=bool, default=True):
|
||||
if config("LEGACY_SEARCH", cast=bool, default=False):
|
||||
print(">>> Using legacy search")
|
||||
from . import autocomplete as autocomplete
|
||||
from . import sessions as sessions
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ from chalicelib.utils import ch_client
|
|||
from chalicelib.utils import helper
|
||||
from chalicelib.utils.event_filter_definition import Event
|
||||
|
||||
TABLE = "final.autocomplete"
|
||||
|
||||
|
||||
def __get_autocomplete_table(value, project_id):
|
||||
autocomplete_events = [schemas.FilterType.rev_id,
|
||||
|
|
@ -19,7 +21,7 @@ def __get_autocomplete_table(value, project_id):
|
|||
sub_queries = []
|
||||
for e in autocomplete_events:
|
||||
sub_queries.append(f"""(SELECT type, value
|
||||
FROM final.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE project_id = %(project_id)s
|
||||
AND type= '{e}'
|
||||
AND value ILIKE %(svalue)s
|
||||
|
|
@ -27,7 +29,7 @@ def __get_autocomplete_table(value, project_id):
|
|||
LIMIT 5)""")
|
||||
if len(value) > 2:
|
||||
sub_queries.append(f"""(SELECT type, value
|
||||
FROM final.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE project_id = %(project_id)s
|
||||
AND type= '{e}'
|
||||
AND value ILIKE %(value)s
|
||||
|
|
@ -55,7 +57,7 @@ def __get_autocomplete_table(value, project_id):
|
|||
def __generic_query(typename, value_length=None):
|
||||
if value_length is None or value_length > 2:
|
||||
return f"""(SELECT DISTINCT value, type
|
||||
FROM final.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
AND type='{typename}'
|
||||
|
|
@ -64,7 +66,7 @@ def __generic_query(typename, value_length=None):
|
|||
LIMIT 5)
|
||||
UNION DISTINCT
|
||||
(SELECT DISTINCT value, type
|
||||
FROM final.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
AND type='{typename}'
|
||||
|
|
@ -72,7 +74,7 @@ def __generic_query(typename, value_length=None):
|
|||
ORDER BY value
|
||||
LIMIT 5);"""
|
||||
return f"""SELECT DISTINCT value, type
|
||||
FROM final.autocomplete
|
||||
FROM {TABLE}
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
AND type='{typename}'
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue