"""Logic for retrieving market ranks.""" from typing import Any, Dict, Mapping from analytics.constants import cache from analytics.queries.format import format_row from analytics.queries.market_ranks import MarketRanks from analytics.schemas.market_ranks import MarketRanksSchema from analytics.utils.cache import cache_in_redis @cache_in_redis(ttl=cache.ONE_DAY) def get_market_ranks( query_params: Mapping[str, Any], permissions: Mapping[str, Any], ) -> Dict: """Get market ranks by store.""" query = MarketRanks({**query_params, **permissions}) result = [format_row(data_point) for data_point in query.execute()] return MarketRanksSchema.normalized_response({"items": result})