File size: 832 Bytes
550665c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
from gcsa.reminders import Reminder, EmailReminder, PopupReminder
from .base_serializer import BaseSerializer
class ReminderSerializer(BaseSerializer):
type_ = Reminder
def __init__(self, reminder):
super().__init__(reminder)
@staticmethod
def _to_json(reminder: Reminder):
return {
'method': reminder.method,
'minutes': reminder.minutes_before_start
}
@staticmethod
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))
|