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))