feat(chalice): refactored autocomplete

This commit is contained in:
Taha Yassine Kraiem 2022-08-03 14:11:53 +02:00
parent 66a62edff4
commit fd373a057f
3 changed files with 18 additions and 13 deletions

View file

@ -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}'

View file

@ -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:

View file

@ -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}'