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