1 # SPDX-License-Identifier: GPL-2.0-only
3 # This file is part of Nominatim. (https://nominatim.org)
5 # Copyright (C) 2022 by the Nominatim developer community.
6 # For a full list of authors see the git log.
8 Output formatters for API version v1.
10 from typing import Dict, Any
11 from collections import OrderedDict
14 from nominatim.result_formatter.base import FormatDispatcher
15 from nominatim.apicmd.status import StatusResult
17 create = FormatDispatcher()
19 @create.format_func(StatusResult, 'text')
20 def _format_status_text(result: StatusResult) -> str:
22 return f"ERROR: {result.message}"
27 @create.format_func(StatusResult, 'json')
28 def _format_status_json(result: StatusResult) -> str:
29 # XXX write a simple JSON serializer
30 out: Dict[str, Any] = OrderedDict()
31 out['status'] = result.status
32 out['message'] = result.message
33 if result.data_updated is not None:
34 out['data_updated'] = result.data_updated.isoformat()
35 out['software_version'] = result.software_version
36 if result.database_version is not None:
37 out['database_version'] = result.database_version
39 return json.dumps(out)