From 39976286721c95a40c00a94a5cf4c7aa5d819f8c Mon Sep 17 00:00:00 2001
From: Markus Scheidgen <markus.scheidgen@gmail.com>
Date: Tue, 11 May 2021 15:10:05 +0200
Subject: [PATCH] Fixed URL ports. Added creators to catalog in dcat api.

---
 nomad/app/flask/dcat/mapping.py | 15 +++++++++------
 nomad/config.py                 |  3 +--
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/nomad/app/flask/dcat/mapping.py b/nomad/app/flask/dcat/mapping.py
index 5cce7a6181..feef5f2bd1 100644
--- a/nomad/app/flask/dcat/mapping.py
+++ b/nomad/app/flask/dcat/mapping.py
@@ -40,12 +40,12 @@ def get_optional_entry_prop(entry, name):
 class Mapping():
     def __init__(self):
         self.g = Graph()
-        self.g.namespace_manager.bind('rdf', RDF)
-        self.g.namespace_manager.bind('dcat', DCAT)
-        self.g.namespace_manager.bind('dct', DCT)
-        self.g.namespace_manager.bind('vcard', VCARD)
-        self.g.namespace_manager.bind('foaf', FOAF)
-        self.g.namespace_manager.bind('hydra', HYDRA)
+        self.g.bind('rdf', RDF)
+        self.g.bind('dcat', DCAT)
+        self.g.bind('dct', DCT)
+        self.g.bind('vcard', VCARD)
+        self.g.bind('foaf', FOAF)
+        self.g.bind('hydra', HYDRA)
 
         self.persons = {}
 
@@ -76,6 +76,9 @@ class Mapping():
 
         self.g.add((hydra_collection, RDF.type, HYDRA.collection))
 
+        for person in self.persons.values():
+            self.g.add((catalog, DCT.creator, person))
+
     def map_entry(self, entry: EntryMetadata, slim=False):
         dataset = URIRef(url('datasets', entry.calc_id))
 
diff --git a/nomad/config.py b/nomad/config.py
index 2e11792eda..fb56c7ddc5 100644
--- a/nomad/config.py
+++ b/nomad/config.py
@@ -177,8 +177,7 @@ tests = NomadConfig(
 def api_url(ssl: bool = True, api: str = 'api'):
     protocol = 'https' if services.https and ssl else 'http'
     host_and_port = services.api_host.strip('/')
-    standard_port = 443 if protocol == 'https' else 80
-    if services.api_port != standard_port:
+    if services.api_port not in [80, 443]:
         host_and_port += ':' + str(services.api_port)
     base_path = services.api_base_path.strip('/')
     return f'{protocol}://{host_and_port}/{base_path}/{api}'
-- 
GitLab