diff --git a/src/backend_api/app/plotting/plotter.py b/src/backend_api/app/plotting/plotter.py index f7b0cb11..29b101d5 100644 --- a/src/backend_api/app/plotting/plotter.py +++ b/src/backend_api/app/plotting/plotter.py @@ -128,6 +128,28 @@ def _init_stmt( return stmt + def _filter_item_names( + self, + statement: Select, + *, + item_model: type[model_Item | model_UniItem], + query: Q, + ) -> Select: + if query.itemSpecifications is not None: + if query.itemSpecifications.name is not None: + if "|" in query.itemSpecifications.name: + name_filter = or_( + *[ + item_model.name == name + for name in query.itemSpecifications.name.split("|") + ] + ) + else: + name_filter = item_model.name == query.itemSpecifications.name + statement = statement.where(name_filter) + + return statement + def _filter_base_specs( self, statement: Select, @@ -340,27 +362,6 @@ def _add_wanted_modifiers( return statement.where(and_(True, *exists_conditions)) - def _filter_item_names( - self, - statement: Select, - *, - query: IdentifiedPlotQuery, - ) -> Select: - if query.itemSpecifications is not None: - if query.itemSpecifications.name is not None: - if "|" in query.itemSpecifications.name: - name_filter = or_( - *[ - model_Item.name == name - for name in query.itemSpecifications.name.split("|") - ] - ) - else: - name_filter = model_Item.name == query.itemSpecifications.name - statement = statement.where(name_filter) - - return statement - def _filter_item_specs( self, statement: Select, *, item_spec_query: ItemSpecs ) -> Select: @@ -432,7 +433,9 @@ def _create_plot_statement(self, query: IdentifiedPlotQuery) -> Select: statement = self._filter_base_specs( statement, item_model=model_Item, query=query ) - statement = self._filter_item_names(statement, query=query) + statement = self._filter_item_names( + statement, item_model=model_Item, query=query + ) statement = self.filter_item_lvl(statement, item_model=model_Item, query=query) statement = self._filter_properties( statement, query=query, start=start, end=end @@ -642,6 +645,9 @@ def _create_plot_statement(self, query: UnidentifiedPlotQuery) -> Select: end=end, query_select_args=q_add_args, ) + statement = self._filter_item_names( + statement, item_model=model_UnidentifiedItem, query=query + ) statement = self._filter_base_specs( statement, item_model=model_UnidentifiedItem, query=query ) diff --git a/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/config.py b/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/config.py index 89ab2769..afb13815 100644 --- a/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/config.py +++ b/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/config.py @@ -1,3 +1,4 @@ +from pydantic import computed_field from pydantic_settings import BaseSettings @@ -21,14 +22,12 @@ def dispersed_timing_enabled(self) -> bool: return bool(self.CREATE_DATA_DIFFERENT_TIMING_INTERVAL and self.TIMING_PERIOD) ITEM_NOTE_CURRENCY_TYPES: list[str] = [ - "chaos", - "divine", "divine", ] # , "divine", "mirror", etc. MEAN_ITEM_PRICE: int = 200 SOFTCORE_LEAGUES: list[str] = ["Mercenaries", "Phrecia"] - + @computed_field # type: ignore[prop-decorator] @property def HARDCORE_LEAGUES(self) -> list[str]: diff --git a/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/main.py b/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/main.py index 0db003db..e01e59c4 100644 --- a/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/main.py +++ b/src/backend_data_retrieval/data_retrieval_app/tests/scripts/create_public_stashes_test_data/main.py @@ -33,8 +33,8 @@ def __init__(self) -> None: ) self.public_stashes_modifier_test_data_creator.create_templates() self.leagues = [ - *script_settings.LEAGUES, - *[f"Hardcore {league}" for league in script_settings.LEAGUES], + *script_settings.SOFTCORE_LEAGUES, + *script_settings.HARDCORE_LEAGUES, ] def get_test_data(self) -> list[dict[str, Any]]: