"""Logic for product. Provides logic accessing and modifying content review status entries. """ from content_review.models import product_review_status from content_review.models import review_status_type as rst_model from content_review.models import review_type as rt_model def create_default_status(review_type, product_ids): """Create new product review records with default status. Args: review_type (str): name of review type for product product_ids (list): list of product ids used to create default entries Returns: Response """ rt_value = rt_model.get_review_types(flipped_dict=True) rst_value = rst_model.get_status_types(flipped_dict=True) response = product_review_status.create_product_status_review( product_ids, rt_value.message.get(review_type.upper()), rst_value.message.get('Pending') ) return response def update_status(review_type, update_list): """Update product review records with provided status. Also creates new entries with the provided status if one doesn't exist. Args: review_type (str): name of review type for product update_list (list): list of product ids with review_timestamp and status used to create default entries Returns: Response """ rt_value = rt_model.get_review_types(flipped_dict=True) return product_review_status.update_product_status_review( rt_value.message.get(review_type.upper()), update_list ) def get_status(review_type, product_id, page_offset=None, page_limit=None): """Get product review records. Args: review_type (str): name of review type for product product_id (int): product_id in the database page_offset (int): offset to use for pagination. page_limit (int): max number of items per page. Returns: Response """ response = product_review_status.get_product_status_review_history( product_id, page_offset, page_limit ) return response