Skip to content
Snippets Groups Projects
Commit 2a94dea0 authored by Andreas Hubel's avatar Andreas Hubel
Browse files

chore(schedulejson): add request header config option

parent 1de78d3e
Branches
Tags
No related merge requests found
......@@ -16,8 +16,10 @@ class ScheduleJSONSupport(BaseScheduleSupport):
readonly = True
configuration_fields = {
# 'key': (type, default value, mandatory, translation text)
'feedback': ('bool', True, False, 'Enable/Disable feedback url generation'),
'kind': ('string', 'assembly', False, 'kind of events, either "assembly" or "official" or "sos" or "lightning"'),
'headers': ('dict', {}, False, 'HTTP headers to send with the request e.g. Authorization'),
}
def ready(self):
......@@ -38,9 +40,12 @@ class ScheduleJSONSupport(BaseScheduleSupport):
all events need to have an unique but stable identifier, i.e.
if the name of the event changes the identifier must not change!
"""
headers = {}
if self.conf_value('headers'):
headers = self.conf_value('headers')
schedule = ScheduleJSON.from_url(self.remote_url, language='en')
schedule_de = ScheduleJSON.from_url(self.remote_url, language='de', event_map=True)
schedule = ScheduleJSON.from_url(self.remote_url, headers={**headers, 'Accept-Language': 'en'})
schedule_de = ScheduleJSON.from_url(self.remote_url, headers={**headers, 'Accept-Language': 'de'}, event_map=True)
instance = urlparse(schedule.get('base_url', self.remote_url))
host = f'//{instance.netloc}'
......@@ -101,8 +106,8 @@ class ScheduleJSON:
self._events = {e.get('guid'): e for e in self.events()}
@classmethod
def from_url(cls, url, client=None, language=None, event_map=False):
r = (client if client else s).get(url, headers={'Accept-Language': language} if language else None)
def from_url(cls, url, client=None, headers=None, event_map=False):
r = (client if client else s).get(url, headers=headers)
if r.ok is False:
raise Exception(f'Request failed, HTTP {r.status_code}.')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment