refactor(chalice): metafilters-autocomplete lazy initialization
This commit is contained in:
parent
77208b95e8
commit
1c8c231d13
2 changed files with 72 additions and 67 deletions
|
|
@ -1,8 +1,8 @@
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
import schemas
|
import schemas
|
||||||
from chalicelib.core.autocomplete import autocomplete
|
|
||||||
from chalicelib.core import issues
|
from chalicelib.core import issues
|
||||||
|
from chalicelib.core.autocomplete import autocomplete
|
||||||
from chalicelib.core.sessions import sessions_metas
|
from chalicelib.core.sessions import sessions_metas
|
||||||
from chalicelib.utils import pg_client, helper
|
from chalicelib.utils import pg_client, helper
|
||||||
from chalicelib.utils.TimeUTC import TimeUTC
|
from chalicelib.utils.TimeUTC import TimeUTC
|
||||||
|
|
@ -206,13 +206,13 @@ def search(text, event_type, project_id, source, key):
|
||||||
rows = SUPPORTED_TYPES[event_type].get(project_id=project_id, value=text, key=key, source=source)
|
rows = SUPPORTED_TYPES[event_type].get(project_id=project_id, value=text, key=key, source=source)
|
||||||
elif event_type + "_MOBILE" in SUPPORTED_TYPES.keys():
|
elif event_type + "_MOBILE" in SUPPORTED_TYPES.keys():
|
||||||
rows = SUPPORTED_TYPES[event_type + "_MOBILE"].get(project_id=project_id, value=text, key=key, source=source)
|
rows = SUPPORTED_TYPES[event_type + "_MOBILE"].get(project_id=project_id, value=text, key=key, source=source)
|
||||||
elif event_type in sessions_metas.SUPPORTED_TYPES.keys():
|
elif event_type in sessions_metas.supported_types().keys():
|
||||||
return sessions_metas.search(text, event_type, project_id)
|
return sessions_metas.search(text, event_type, project_id)
|
||||||
elif event_type.endswith("_IOS") \
|
elif event_type.endswith("_IOS") \
|
||||||
and event_type[:-len("_IOS")] in sessions_metas.SUPPORTED_TYPES.keys():
|
and event_type[:-len("_IOS")] in sessions_metas.supported_types().keys():
|
||||||
return sessions_metas.search(text, event_type, project_id)
|
return sessions_metas.search(text, event_type, project_id)
|
||||||
elif event_type.endswith("_MOBILE") \
|
elif event_type.endswith("_MOBILE") \
|
||||||
and event_type[:-len("_MOBILE")] in sessions_metas.SUPPORTED_TYPES.keys():
|
and event_type[:-len("_MOBILE")] in sessions_metas.supported_types().keys():
|
||||||
return sessions_metas.search(text, event_type, project_id)
|
return sessions_metas.search(text, event_type, project_id)
|
||||||
else:
|
else:
|
||||||
return {"errors": ["unsupported event"]}
|
return {"errors": ["unsupported event"]}
|
||||||
|
|
|
||||||
|
|
@ -1,76 +1,81 @@
|
||||||
|
from functools import lru_cache
|
||||||
|
|
||||||
import schemas
|
import schemas
|
||||||
from chalicelib.core.autocomplete import autocomplete
|
from chalicelib.core.autocomplete import autocomplete
|
||||||
from chalicelib.utils.event_filter_definition import SupportedFilter
|
from chalicelib.utils.event_filter_definition import SupportedFilter
|
||||||
|
|
||||||
SUPPORTED_TYPES = {
|
|
||||||
schemas.FilterType.USER_OS: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS)),
|
|
||||||
schemas.FilterType.USER_BROWSER: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_BROWSER),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_BROWSER)),
|
|
||||||
schemas.FilterType.USER_DEVICE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_DEVICE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_DEVICE)),
|
|
||||||
schemas.FilterType.USER_COUNTRY: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY)),
|
|
||||||
schemas.FilterType.USER_CITY: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_CITY),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_CITY)),
|
|
||||||
schemas.FilterType.USER_STATE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_STATE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_STATE)),
|
|
||||||
schemas.FilterType.USER_ID: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID)),
|
|
||||||
schemas.FilterType.USER_ANONYMOUS_ID: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID)),
|
|
||||||
schemas.FilterType.REV_ID: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID)),
|
|
||||||
schemas.FilterType.REFERRER: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REFERRER),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REFERRER)),
|
|
||||||
schemas.FilterType.UTM_CAMPAIGN: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_CAMPAIGN),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_CAMPAIGN)),
|
|
||||||
schemas.FilterType.UTM_MEDIUM: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_MEDIUM),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_MEDIUM)),
|
|
||||||
schemas.FilterType.UTM_SOURCE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_SOURCE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_SOURCE)),
|
|
||||||
# Mobile
|
|
||||||
schemas.FilterType.USER_OS_MOBILE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS_MOBILE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS_MOBILE)),
|
|
||||||
schemas.FilterType.USER_DEVICE_MOBILE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(
|
|
||||||
typename=schemas.FilterType.USER_DEVICE_MOBILE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_DEVICE_MOBILE)),
|
|
||||||
schemas.FilterType.USER_COUNTRY_MOBILE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY_MOBILE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY_MOBILE)),
|
|
||||||
schemas.FilterType.USER_ID_MOBILE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID_MOBILE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID_MOBILE)),
|
|
||||||
schemas.FilterType.USER_ANONYMOUS_ID_MOBILE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID_MOBILE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID_MOBILE)),
|
|
||||||
schemas.FilterType.REV_ID_MOBILE: SupportedFilter(
|
|
||||||
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID_MOBILE),
|
|
||||||
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID_MOBILE)),
|
|
||||||
|
|
||||||
}
|
@lru_cache
|
||||||
|
def supported_types():
|
||||||
|
return {
|
||||||
|
schemas.FilterType.USER_OS: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS)),
|
||||||
|
schemas.FilterType.USER_BROWSER: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_BROWSER),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_BROWSER)),
|
||||||
|
schemas.FilterType.USER_DEVICE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_DEVICE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_DEVICE)),
|
||||||
|
schemas.FilterType.USER_COUNTRY: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY)),
|
||||||
|
schemas.FilterType.USER_CITY: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_CITY),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_CITY)),
|
||||||
|
schemas.FilterType.USER_STATE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_STATE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_STATE)),
|
||||||
|
schemas.FilterType.USER_ID: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID)),
|
||||||
|
schemas.FilterType.USER_ANONYMOUS_ID: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID)),
|
||||||
|
schemas.FilterType.REV_ID: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID)),
|
||||||
|
schemas.FilterType.REFERRER: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REFERRER),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REFERRER)),
|
||||||
|
schemas.FilterType.UTM_CAMPAIGN: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_CAMPAIGN),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_CAMPAIGN)),
|
||||||
|
schemas.FilterType.UTM_MEDIUM: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_MEDIUM),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_MEDIUM)),
|
||||||
|
schemas.FilterType.UTM_SOURCE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_SOURCE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.UTM_SOURCE)),
|
||||||
|
# Mobile
|
||||||
|
schemas.FilterType.USER_OS_MOBILE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS_MOBILE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_OS_MOBILE)),
|
||||||
|
schemas.FilterType.USER_DEVICE_MOBILE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(
|
||||||
|
typename=schemas.FilterType.USER_DEVICE_MOBILE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_DEVICE_MOBILE)),
|
||||||
|
schemas.FilterType.USER_COUNTRY_MOBILE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY_MOBILE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_COUNTRY_MOBILE)),
|
||||||
|
schemas.FilterType.USER_ID_MOBILE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID_MOBILE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ID_MOBILE)),
|
||||||
|
schemas.FilterType.USER_ANONYMOUS_ID_MOBILE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID_MOBILE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.USER_ANONYMOUS_ID_MOBILE)),
|
||||||
|
schemas.FilterType.REV_ID_MOBILE: SupportedFilter(
|
||||||
|
get=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID_MOBILE),
|
||||||
|
query=autocomplete.generic_autocomplete_metas(typename=schemas.FilterType.REV_ID_MOBILE)),
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def search(text: str, meta_type: schemas.FilterType, project_id: int):
|
def search(text: str, meta_type: schemas.FilterType, project_id: int):
|
||||||
rows = []
|
rows = []
|
||||||
if meta_type not in list(SUPPORTED_TYPES.keys()):
|
if meta_type not in list(supported_types().keys()):
|
||||||
return {"errors": ["unsupported type"]}
|
return {"errors": ["unsupported type"]}
|
||||||
rows += SUPPORTED_TYPES[meta_type].get(project_id=project_id, text=text)
|
rows += supported_types()[meta_type].get(project_id=project_id, text=text)
|
||||||
# for IOS events autocomplete
|
# for IOS events autocomplete
|
||||||
# if meta_type + "_IOS" in list(SUPPORTED_TYPES.keys()):
|
# if meta_type + "_IOS" in list(SUPPORTED_TYPES.keys()):
|
||||||
# rows += SUPPORTED_TYPES[meta_type + "_IOS"].get(project_id=project_id, text=text)
|
# rows += SUPPORTED_TYPES[meta_type + "_IOS"].get(project_id=project_id, text=text)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue