in facebook_business/adobjects/productcatalog.py [0:0]
def create_product_feed(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False):
from facebook_business.utils import api_utils
if batch is None and (success is not None or failure is not None):
api_utils.warning('`success` and `failure` callback only work for batch call.')
from facebook_business.adobjects.productfeed import ProductFeed
param_types = {
'country': 'string',
'default_currency': 'string',
'deletion_enabled': 'bool',
'delimiter': 'delimiter_enum',
'encoding': 'encoding_enum',
'feed_type': 'feed_type_enum',
'file_name': 'string',
'ingestion_source_type': 'ingestion_source_type_enum',
'item_sub_type': 'item_sub_type_enum',
'migrated_from_feed_id': 'string',
'name': 'string',
'override_type': 'override_type_enum',
'override_value': 'string',
'primary_feed_ids': 'list<string>',
'quoted_fields_mode': 'quoted_fields_mode_enum',
'rules': 'list<string>',
'schedule': 'string',
'selected_override_fields': 'list<string>',
'update_schedule': 'string',
}
enums = {
'delimiter_enum': ProductFeed.Delimiter.__dict__.values(),
'encoding_enum': ProductFeed.Encoding.__dict__.values(),
'feed_type_enum': ProductFeed.FeedType.__dict__.values(),
'ingestion_source_type_enum': ProductFeed.IngestionSourceType.__dict__.values(),
'item_sub_type_enum': ProductFeed.ItemSubType.__dict__.values(),
'override_type_enum': ProductFeed.OverrideType.__dict__.values(),
'quoted_fields_mode_enum': ProductFeed.QuotedFieldsMode.__dict__.values(),
}
request = FacebookRequest(
node_id=self['id'],
method='POST',
endpoint='/product_feeds',
api=self._api,
param_checker=TypeChecker(param_types, enums),
target_class=ProductFeed,
api_type='EDGE',
response_parser=ObjectParser(target_class=ProductFeed, api=self._api),
)
request.add_params(params)
request.add_fields(fields)
if batch is not None:
request.add_to_batch(batch, success=success, failure=failure)
return request
elif pending:
return request
else:
self.assure_call()
return request.execute()