"""Methods to operate with feed status.""" from ..connectors.graphql_router import execute_query from ..errors.feed_status import LoadFeedStatusError from ..models.feed_status import FeedStatus from ..schemas import GetAnalyticsFeedStatusesQueryResponseSchema __all__ = ['get_feed_statuses'] def get_feed_statuses() -> list[FeedStatus]: """Get feed statuses.""" query_string = """ query GetFeedStatuses { analyticFeedStatuses { feedStatus { feed { id name store { storeId storeName } } storeHighWaterMark updateStatus } } } """ try: raw_data = execute_query(query_string=query_string) schema = GetAnalyticsFeedStatusesQueryResponseSchema() response = schema.load(raw_data) return response.analytic_feed_statuses.feed_status except Exception as e: raise LoadFeedStatusError('Could not load feed statuses.') from e