diff --git a/PDMI/api/urls.py b/PDMI/api/urls.py index b18e3e9..e70a221 100644 --- a/PDMI/api/urls.py +++ b/PDMI/api/urls.py @@ -20,4 +20,5 @@ urlpatterns = [ path('download///', views.ModuleDownloadView.as_view(), name="api_zip_dl"), path('toml_download///', views.TomlDownloadView.as_view(), name="api_toml_dl"), path('modules/', views.ApiModuleListView.as_view(), name="api_modules_list"), + path('versions//', views.ModuleVersionsView.as_view(), name="api_modules_versions"), ] diff --git a/PDMI/api/views.py b/PDMI/api/views.py index 3033a1b..ce541f4 100644 --- a/PDMI/api/views.py +++ b/PDMI/api/views.py @@ -43,3 +43,15 @@ class ApiModuleListView(View): for mod in Module.objects.all(): mod_list['modules'].append(mod.name) return JsonResponse(mod_list) + +class ModuleVersionsView(View): + """ + Module versions view : returns jsons response with all versions of a single + module, using module name + """ + def get(self, request, name): + mod = get_object_or_404(Module, name=name) + versions = {mod.name: []} + for ver in Version.objects.filter(module=mod): + versions[mod.name].append(ver.ver) + return JsonResponse(versions)