From 88d49aaa9df505feb9d6c916f1e9370e012d587b Mon Sep 17 00:00:00 2001 From: Neda Moeini <neda.moeini@geant.org> Date: Fri, 28 Mar 2025 10:40:14 +0100 Subject: [PATCH] Add version endpoint --- sage_validation/file_validator/views.py | 11 +++++++++++ sage_validation/urls.py | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sage_validation/file_validator/views.py b/sage_validation/file_validator/views.py index 5eb98dd..aeaa50b 100644 --- a/sage_validation/file_validator/views.py +++ b/sage_validation/file_validator/views.py @@ -1,9 +1,12 @@ """Views for the file_validator app.""" import csv import io +from importlib.metadata import PackageNotFoundError +from importlib.metadata import version as get_version from typing import ClassVar from django.http import HttpRequest, HttpResponse +from django.http.response import JsonResponse from django.shortcuts import render from django.urls import reverse_lazy from django.utils import timezone @@ -23,6 +26,14 @@ def index_view(request: HttpRequest) -> HttpResponse: return render(request, "index.html") +def version_view(_request: HttpRequest) -> JsonResponse: + """Return the module version as JSON.""" + try: + module_version = get_version("sage-validation") + except PackageNotFoundError: + module_version = "unknown" + + return JsonResponse({"module": module_version}) def upload_page_view(request: HttpRequest) -> HttpResponse: """Render the file upload page.""" return render(request, "upload.html") diff --git a/sage_validation/urls.py b/sage_validation/urls.py index 1146896..166c075 100644 --- a/sage_validation/urls.py +++ b/sage_validation/urls.py @@ -3,7 +3,7 @@ from django.contrib import admin from django.urls import path from django.urls.conf import include -from sage_validation.file_validator.views import index_view +from sage_validation.file_validator.views import index_view, version_view urlpatterns = [ path("admin/", admin.site.urls), @@ -11,4 +11,5 @@ urlpatterns = [ path("", index_view, name="index"), path("", include("social_django.urls", namespace="social")), path("accounts/", include("sage_validation.accounts.urls")), + path("version/", version_view, name="version"), ] -- GitLab