diff --git a/pygeometa/schemas/ogcapi_records/__init__.py b/pygeometa/schemas/ogcapi_records/__init__.py index c597b8b..d7f52c8 100644 --- a/pygeometa/schemas/ogcapi_records/__init__.py +++ b/pygeometa/schemas/ogcapi_records/__init__.py @@ -99,7 +99,7 @@ def write(self, mcf: dict, stringify: str = True) -> Union[dict, str]: record = { 'id': mcf['metadata']['identifier'], 'conformsTo': [ - 'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/record-core', # noqa + 'http://www.opengis.net/spec/ogcapi-records-1/1.0/conf/record-core', # noqa ], 'type': 'Feature', 'geometry': { @@ -116,14 +116,16 @@ def write(self, mcf: dict, stringify: str = True) -> Union[dict, str]: 'title': title[0], 'description': description[0], 'themes': [], - 'language': { - 'code': self.lang1 - }, 'type': mcf['metadata']['hierarchylevel'], }, 'links': [] } + if self.lang1 is not None: + record['properties']['language'] = { + 'code': self.lang1 + } + LOGGER.debug('Checking for temporal') try: begin = mcf['identification']['extents']['temporal'][0]['begin'] @@ -141,6 +143,8 @@ def write(self, mcf: dict, stringify: str = True) -> Union[dict, str]: if [begin, end] == [None, None]: record['time'] = None + elif [begin, end] == ['..', '..']: + pass else: record['time'] = { 'interval': [begin, end] @@ -214,6 +218,9 @@ def write(self, mcf: dict, stringify: str = True) -> Union[dict, str]: if all_keywords: record['properties']['keywords'] = all_keywords + if not record['properties']['themes']: + _ = record['properties'].pop('themes', None) + LOGGER.debug('Checking for licensing') if mcf['identification'].get('license') is not None: license = mcf['identification']['license'] @@ -388,10 +395,12 @@ def generate_link(self, distribution: dict) -> dict: name = get_charstring(distribution.get('name'), self.lang1, self.lang2) link = { - 'href': distribution['url'], - 'type': distribution['type'] + 'href': distribution['url'] } + if distribution.get('type') is not None: + link['type'] = distribution['type'] + reltype = distribution.get('rel') or distribution.get('function') if reltype is not None: link['rel'] = reltype