in facebook_business/adobjects/productcatalog.py [0:0]
def create_vehicle(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.vehicle import Vehicle
param_types = {
'address': 'map',
'applinks': 'Object',
'availability': 'availability_enum',
'body_style': 'body_style_enum',
'condition': 'condition_enum',
'currency': 'string',
'date_first_on_lot': 'string',
'dealer_id': 'string',
'dealer_name': 'string',
'dealer_phone': 'string',
'description': 'string',
'drivetrain': 'drivetrain_enum',
'exterior_color': 'string',
'fb_page_id': 'string',
'fuel_type': 'fuel_type_enum',
'images': 'list<Object>',
'interior_color': 'string',
'make': 'string',
'mileage': 'map',
'model': 'string',
'price': 'unsigned int',
'state_of_vehicle': 'state_of_vehicle_enum',
'title': 'string',
'transmission': 'transmission_enum',
'trim': 'string',
'url': 'string',
'vehicle_id': 'string',
'vehicle_type': 'vehicle_type_enum',
'vin': 'string',
'year': 'unsigned int',
}
enums = {
'availability_enum': Vehicle.Availability.__dict__.values(),
'body_style_enum': Vehicle.BodyStyle.__dict__.values(),
'condition_enum': Vehicle.Condition.__dict__.values(),
'drivetrain_enum': Vehicle.Drivetrain.__dict__.values(),
'fuel_type_enum': Vehicle.FuelType.__dict__.values(),
'state_of_vehicle_enum': Vehicle.StateOfVehicle.__dict__.values(),
'transmission_enum': Vehicle.Transmission.__dict__.values(),
'vehicle_type_enum': Vehicle.VehicleType.__dict__.values(),
}
request = FacebookRequest(
node_id=self['id'],
method='POST',
endpoint='/vehicles',
api=self._api,
param_checker=TypeChecker(param_types, enums),
target_class=Vehicle,
api_type='EDGE',
response_parser=ObjectParser(target_class=Vehicle, 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()