import os from django.http import HttpResponse, JsonResponse from django.shortcuts import get_object_or_404, render from lofar.sas.tmss.tmss.tmssapp import models from lofar.sas.tmss.tmss.tmssapp.validation import get_default_json_object_for_schema from lofar.sas.tmss.tmss.tmssapp.adapters.parset import convert_to_parset from drf_yasg.utils import swagger_auto_schema from rest_framework.permissions import AllowAny from rest_framework.decorators import authentication_classes, permission_classes def subtask_template_default_specification(request, subtask_template_pk:int): subtask_template = get_object_or_404(models.SubtaskTemplate, pk=subtask_template_pk) spec = get_default_json_object_for_schema(subtask_template.schema) return JsonResponse(spec) def task_template_default_specification(request, task_template_pk:int): task_template = get_object_or_404(models.TaskTemplate, pk=task_template_pk) spec = get_default_json_object_for_schema(task_template.schema) return JsonResponse(spec) def subtask_parset(request, subtask_pk:int): subtask = get_object_or_404(models.Subtask, pk=subtask_pk) parset = convert_to_parset(subtask) return HttpResponse(str(parset), content_type='text/plain') def index(request): return render(request, os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), '../../frontend','frontend_poc/build/index.html')) #return render(request, "../../../frontend/frontend_poc/build/index.html") def task_specify_observation(request, pk=None): task = get_object_or_404(models.TaskDraft, pk=pk) return HttpResponse("response", content_type='text/plain') @permission_classes([AllowAny]) @authentication_classes([AllowAny]) @swagger_auto_schema(responses={200: 'JSON schema', 404: 'the schema with requested <name> and <version> is not available'}, operation_description="Get the JSON schema with the given <name> and <version> as application/json content response.") def get_common_json_schema(request, name:str, version:str): template = get_object_or_404(models.CommonSchemaTemplate, name=name, version=version) schema = template.schema schema['$id'] = request.get_raw_uri() return JsonResponse(schema, json_dumps_params={"indent":2}) @permission_classes([AllowAny]) @authentication_classes([AllowAny]) @swagger_auto_schema(responses={200: 'JSON schema', 404: 'the schema with requested <name> and <version> is not available'}, operation_description="Get the JSON schema with the given <name> and <version> as application/json content response.") def get_subtask_template_json_schema(request, name:str, version:str): template = get_object_or_404(models.SubtaskTemplate, name=name, version=version) schema = template.schema schema['$id'] = request.get_raw_uri() return JsonResponse(schema, json_dumps_params={"indent":2})