"""Validation functions for product submission API endpoint.""" # The list of fields we accept via API on initial product submission. No other # fields would be passed to the data persistence layer. # (JSON schema validation happens earlier and only validates the fields we # explicitly specify.) PRODUCT_INITIALLY_ALLOWED_FIELDS = ( 'product_id', 'orchard_product_id', 'upc', 'itunes_vendor_id', 'provider', 'store_id', 'delivery_date', 'sales_start_date', 'force_polling', ) def filter_initial_product_fields(data_dict): """Filter data received via API to contain only initial product fields. Args: data_dict (dict): A dictionary data decoded from JSON API request. Returns: dict: A dictionary with all non-initial fields filtered out. """ return { k: data_dict[k] for k in data_dict if k in PRODUCT_INITIALLY_ALLOWED_FIELDS }