Source code for pyticketswitch.review
from pyticketswitch.mixins import JSONMixin
from pyticketswitch.utils import isostr_to_datetime
[docs]class Review(JSONMixin, object):
"""User or Critic evaluation of an event.
Attributes:
body (str): review test.
date_time (datetime.datetime): date and time of the review.
star_rating (int): rating on a scale of 1-5, with 1 being the lowest
rating and 5 being the highest rating.
language (str): the IETF language tag for the review.
title (str): a review title if available.
is_user (bool): the review was made by a user not a critic.
author (str): the authors name.
url (str): the original url.
"""
def __init__(self, body=None, date_time=None, star_rating=None,
lang=None, title=None, is_user=False, author=None, url=None):
self.body = body
self.date_time = date_time
self.star_rating = star_rating
self.language = lang
self.title = title
self.is_user = is_user
self.author = author
self.url = url
[docs] @classmethod
def from_api_data(cls, data):
"""Creates a new **Review** object from ticketswitch API data.
Args:
data (dict): the part of the response from a ticketswitch API call
that concerns a review.
Returns:
:class:`Review <pyticketswitch.order.Review>`: a new
:class:`Review <pyticketswitch.order.Review>` object
populated with the data from the api.
"""
review_date = isostr_to_datetime(
data.get('review_iso8601_date_and_time')
)
kwargs = {
'body': data.get('review_body', None),
'date_time': review_date,
'star_rating': data.get('star_rating', None),
'lang': data.get('review_lang', None),
'title': data.get('review_title', None),
'is_user': data.get('is_user_review', False),
'author': data.get('review_author', None),
'url': data.get('review_original_url', None),
}
return cls(**kwargs)