]> git.openstreetmap.org Git - nominatim.git/blob - nominatim/api/v1/format.py
Merge pull request #2957 from lonvia/reorganise-api-module
[nominatim.git] / nominatim / api / v1 / format.py
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # This file is part of Nominatim. (https://nominatim.org)
4 #
5 # Copyright (C) 2023 by the Nominatim developer community.
6 # For a full list of authors see the git log.
7 """
8 Output formatters for API version v1.
9 """
10 from typing import Dict, Any
11 from collections import OrderedDict
12 import json
13
14 from nominatim.api.result_formatting import FormatDispatcher
15 from nominatim.api import StatusResult
16
17 dispatch = FormatDispatcher()
18
19 @dispatch.format_func(StatusResult, 'text')
20 def _format_status_text(result: StatusResult) -> str:
21     if result.status:
22         return f"ERROR: {result.message}"
23
24     return 'OK'
25
26
27 @dispatch.format_func(StatusResult, 'json')
28 def _format_status_json(result: StatusResult) -> str:
29     out: Dict[str, Any] = OrderedDict()
30     out['status'] = result.status
31     out['message'] = result.message
32     if result.data_updated is not None:
33         out['data_updated'] = result.data_updated.isoformat()
34     out['software_version'] = str(result.software_version)
35     if result.database_version is not None:
36         out['database_version'] = str(result.database_version)
37
38     return json.dumps(out)