def put(self): ticket_type = self.get_argument("type", "normal") showtime_id = self.get_argument("showtime_id", None) user_id = self.get_secure_cookie("user_id", None) if user_id is None: return self.error(403, "Must include the user cookie") # Now grab the reservation reservation = yield get_reservation_for_user(user_id) if reservation is None: return self.error(403, "There is no reservation for this account.") confirmation_code = str(uuid.uuid1()) if ticket_type == "shitty": # Confirm a shitty ticket_type if reservation['showtime_id'] == showtime_id: yield confirm_ticket_reservation( reservation['id'], confirmation_code, True) else: yield self.change_showtime(showtime_id, reservation, confirmation_code) else: # TODO: check the access_tokens, make sure we have enough. yield confirm_ticket_reservation( reservation['id'], confirmation_code, False) user = yield get_user(user_id) yield send_confirmation(user['email'], user['name'], confirmation_code) self.clear_cookie('user_id') self.api_response({'confirmation_code': confirmation_code})
def put(self): ticket_type = self.get_argument("type", "normal") showtime_id = self.get_argument("showtime_id", None) user_id = self.get_secure_cookie("user_id", None) if user_id is None: return self.error(403, "Must include the user cookie") # Now grab the reservation reservation = yield get_reservation_for_user(user_id) if reservation is None: return self.error(403, "There is no reservation for this account.") confirmation_code = str(uuid.uuid1()) if ticket_type == "shitty": # Confirm a shitty ticket_type if reservation['showtime_id'] == showtime_id: yield confirm_ticket_reservation(reservation['id'], confirmation_code, True) else: yield self.change_showtime(showtime_id, reservation, confirmation_code) else: # TODO: check the access_tokens, make sure we have enough. yield confirm_ticket_reservation(reservation['id'], confirmation_code, False) user = yield get_user(user_id) yield send_confirmation(user['email'], user['name'], confirmation_code) self.clear_cookie('user_id') self.api_response({'confirmation_code': confirmation_code})
def post(self): name = self.get_argument("name", None) email = self.get_argument("email", None) showtime_id = self.get_argument("showtime_id", None) promo_code = self.get_argument('promotion_key', None) # Validate user and email entries if name is None or email is None: return self.error( 403, "Must provide valid username and email address to continue" ) # Validate the show time if showtime_id is None: return self.error(400, "Must provide 'showtime_id' to proceed.") showtime = yield get_showtime(showtime_id) if showtime is None: return self.error(404, "Could not find the selected showtime.") if not (yield self.canBookTicketForShowtime(showtime, promo_code)): return self.error(400, "This showtime is sold out.") # Grab or create a user user = yield get_user_from_email(email) if user is not None: user_id = user['id'] self.set_secure_cookie("user_id", user_id) # check for any previous confirmed booking reservation = yield get_reservation_for_user(user_id) if reservation is not None and\ reservation['confirmation_code'] != "": return self.error( 403, "Sorry, you already have a ticket for the show." ) else: user_id = yield user_insert(name, email, showtime_id) self.set_secure_cookie("user_id", user_id) # Create a reservation: note that all previous unconfirmed reservations # will be lost yield create_ticket_reservation(showtime["id"], user_id)
def post(self): name = self.get_argument("name", None) email = self.get_argument("email", None) showtime_id = self.get_argument("showtime_id", None) promo_code = self.get_argument('promotion_key', None) # Validate user and email entries if name is None or email is None: return self.error( 403, "Must provide valid username and email address to continue") # Validate the show time if showtime_id is None: return self.error(400, "Must provide 'showtime_id' to proceed.") showtime = yield get_showtime(showtime_id) if showtime is None: return self.error(404, "Could not find the selected showtime.") if not (yield self.canBookTicketForShowtime(showtime, promo_code)): return self.error(400, "This showtime is sold out.") # Grab or create a user user = yield get_user_from_email(email) if user is not None: user_id = user['id'] self.set_secure_cookie("user_id", user_id) # check for any previous confirmed booking reservation = yield get_reservation_for_user(user_id) if reservation is not None and\ reservation['confirmation_code'] != "": return self.error( 403, "Sorry, you already have a ticket for the show.") else: user_id = yield user_insert(name, email, showtime_id) self.set_secure_cookie("user_id", user_id) # Create a reservation: note that all previous unconfirmed reservations # will be lost yield create_ticket_reservation(showtime["id"], user_id)