| from gcsa.reminders import Reminder, EmailReminder, PopupReminder | |
| from .base_serializer import BaseSerializer | |
| class ReminderSerializer(BaseSerializer): | |
| type_ = Reminder | |
| def __init__(self, reminder): | |
| super().__init__(reminder) | |
| def _to_json(reminder: Reminder): | |
| return { | |
| 'method': reminder.method, | |
| 'minutes': reminder.minutes_before_start | |
| } | |
| def _to_object(json_reminder): | |
| method = json_reminder['method'] | |
| if method == 'email': | |
| return EmailReminder(int(json_reminder['minutes'])) | |
| elif method == 'popup': | |
| return PopupReminder(int(json_reminder['minutes'])) | |
| else: | |
| raise ValueError('Unexpected method "{}" for a reminder.'.format(method)) | |