Use file extension to access different catalog formats

merge-requests/30/head
Bob Mottram 2021-07-25 15:19:04 +01:00
parent 504101d17e
commit 336c7e8bbb
1 changed files with 32 additions and 25 deletions

View File

@ -10679,31 +10679,38 @@ class PubServer(BaseHTTPRequestHandler):
catalogAuthorized = True catalogAuthorized = True
# show shared items DFC catalog # show shared items DFC catalog
if self._hasAccept(callingDomain) and catalogAuthorized: if self._hasAccept(callingDomain) and catalogAuthorized:
if not self._requestHTTP(): catalogType = 'html'
if self._requestCSV(): if self.path.endswith('.csv') or self._requestCSV():
# catalog as a CSV file for import into a spreadsheet catalogType = 'csv'
catalogStr = \ elif self.path.endswith('.json') or not self._requestHTTP():
sharesCatalogCSVEndpoint(self.server.baseDir, catalogType = 'json'
self.server.httpPrefix,
self.server.domainFull, if catalogType == 'json':
self.server.path) # catalog as a json
msg = json.dumps(catalogStr, catalogJson = \
ensure_ascii=False).encode('utf-8') sharesCatalogEndpoint(self.server.baseDir,
msglen = len(msg) self.server.httpPrefix,
self._set_headers('text/csv', self.server.domainFull,
msglen, None, callingDomain) self.server.path)
else: msg = json.dumps(catalogJson,
# catalog as a json ensure_ascii=False).encode('utf-8')
catalogJson = \ msglen = len(msg)
sharesCatalogEndpoint(self.server.baseDir, self._set_headers('application/json',
self.server.httpPrefix, msglen, None, callingDomain)
self.server.domainFull, self._write(msg)
self.server.path) return
msg = json.dumps(catalogJson, elif catalogType == 'csv':
ensure_ascii=False).encode('utf-8') # catalog as a CSV file for import into a spreadsheet
msglen = len(msg) catalogStr = \
self._set_headers('application/json', sharesCatalogCSVEndpoint(self.server.baseDir,
msglen, None, callingDomain) self.server.httpPrefix,
self.server.domainFull,
self.server.path)
msg = json.dumps(catalogStr,
ensure_ascii=False).encode('utf-8')
msglen = len(msg)
self._set_headers('text/csv',
msglen, None, callingDomain)
self._write(msg) self._write(msg)
return return
self.path = '/' self.path = '/'