File size: 2,064 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from gcsa.settings import Settings
from .base_serializer import BaseSerializer


class SettingsSerializer(BaseSerializer):
    type_ = Settings

    def __init__(self, settings):
        super().__init__(settings)

    @staticmethod
    def _to_json(settings: Settings):
        """Isn't used as Settings are read-only"""
        return {
            'autoAddHangouts': settings.auto_add_hangouts,
            'dateFieldOrder': settings.date_field_order,
            'defaultEventLength': settings.default_event_length,
            'format24HourTime': settings.format24_hour_time,
            'hideInvitations': settings.hide_invitations,
            'hideWeekends': settings.hide_weekends,
            'locale': settings.locale,
            'remindOnRespondedEventsOnly': settings.remind_on_responded_events_only,
            'showDeclinedEvents': settings.show_declined_events,
            'timezone': settings.timezone,
            'useKeyboardShortcuts': settings.use_keyboard_shortcuts,
            'weekStart': settings.week_start
        }

    @staticmethod
    def _to_object(json_settings):
        return Settings(
            auto_add_hangouts=json_settings.get('autoAddHangouts', False),
            date_field_order=json_settings.get('dateFieldOrder', 'MDY'),
            default_event_length=json_settings.get('defaultEventLength', 60),
            format24_hour_time=json_settings.get('format24HourTime', False),
            hide_invitations=json_settings.get('hideInvitations', False),
            hide_weekends=json_settings.get('hideWeekends', False),
            locale=json_settings.get('locale', 'en'),
            remind_on_responded_events_only=json_settings.get('remindOnRespondedEventsOnly', False),
            show_declined_events=json_settings.get('showDeclinedEvents', True),
            timezone=json_settings.get('timezone', 'Etc/GMT'),
            use_keyboard_shortcuts=json_settings.get('useKeyboardShortcuts', True),
            week_start=json_settings.get('weekStart', 0)
        )