Source code for pyticketswitch.offer

from pyticketswitch.mixins import JSONMixin

[docs]class Offer(JSONMixin, object): """Describes a reduction in price. Attributes: seatprice (float): the price per seat/ticket. surcharge (float): the additional charges per seat/ticket. original_seatprice (float): the original price per seat/ticket. original_surcharge (float): the original additional charges per seat/ticket. absolute_saving (float): the amount of money saved by this offer. percentage_saving (float): the amount of money saved by this offer, as a percentage of the original price. """ def __init__(self, seatprice=None, surcharge=None, original_seatprice=None, original_surcharge=None, absolute_saving=None, percentage_saving=None): self.seatprice = seatprice self.surcharge = surcharge self.original_surcharge = original_surcharge self.original_seatprice = original_seatprice self.absolute_saving = absolute_saving self.percentage_saving = percentage_saving
[docs] @classmethod def from_api_data(cls, data): """Creates a new Offer object from API data from ticketswitch. Args: data (dict): the part of the response from a ticketswitch API call that concerns an offer. Returns: :class:`Offer <pyticketswitch.offer.Offer>`: a new :class:`Offer <pyticketswitch.offer.Offer>` object populated with the data from the api. """ kwargs = { 'seatprice': data.get('offer_seatprice'), 'surcharge': data.get('offer_surcharge'), 'original_seatprice': data.get('full_seatprice'), 'original_surcharge': data.get('full_surcharge'), 'absolute_saving': data.get('absolute_saving'), 'percentage_saving': data.get('percentage_saving'), } return cls(**kwargs)