Source code for magpie.api.home.home

from magpie.api import exception as ax, schemas as s
from magpie.definitions.pyramid_definitions import NO_PERMISSION_REQUIRED, HTTPOk, view_config
from magpie.db import get_database_revision
from magpie.utils import print_log, get_logger, get_magpie_url, CONTENT_TYPE_JSON
from magpie import __meta__
from copy import deepcopy

import logging
[docs]LOGGER = get_logger(__name__)
# noinspection PyUnusedLocal @s.HomepageAPI.get(tags=[s.APITag], api_security=s.SecurityEveryoneAPI, response_schemas=s.Homepage_GET_responses)
[docs]def get_homepage(request): """ Magpie API homepage (only if Magpie UI is not enabled). """ body = deepcopy(s.InfoAPI) body.update({ u"title": s.TitleAPI, u"name": __meta__.__package__, u"documentation": get_magpie_url() + s.SwaggerAPI.path }) return ax.valid_http(httpSuccess=HTTPOk, content=body, contentType=CONTENT_TYPE_JSON, detail=s.Version_GET_OkResponseSchema.description)
@s.VersionAPI.get(tags=[s.APITag], api_security=s.SecurityEveryoneAPI, response_schemas=s.Version_GET_responses) @view_config(route_name=s.VersionAPI.name, request_method="GET", permission=NO_PERMISSION_REQUIRED)
[docs]def get_version(request): """ Version information of the API. """ version_db = None # noinspection PyBroadException try: version_db = get_database_revision(request.db) except Exception as ex: print_log("Failed to retrieve database revision: [{!r}]".format(ex), LOGGER, logging.WARNING) version = { u"version": __meta__.__version__, u"db_version": version_db } return ax.valid_http(httpSuccess=HTTPOk, content=version, contentType=CONTENT_TYPE_JSON, detail=s.Version_GET_OkResponseSchema.description)