ConceptPortal-public/rsconcept/backend/apps/rsform/views/operations.py

34 lines
1.1 KiB
Python
Raw Normal View History

''' Endpoints for RSForm. '''
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.request import Request
from drf_spectacular.utils import extend_schema
from rest_framework import status as c
from .. import models as m
from .. import serializers as s
@extend_schema(
summary='Inline synthesis: merge one schema into another',
tags=['Operations'],
request=s.InlineSynthesisSerializer,
responses={c.HTTP_200_OK: s.RSFormParseSerializer}
)
@api_view(['PATCH'])
def inline_synthesis(request: Request):
''' Endpoint: Inline synthesis. '''
serializer = s.InlineSynthesisSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
schema = m.RSForm(serializer.validated_data['receiver'])
# schema.substitute(
# original=serializer.validated_data['original'],
# substitution=serializer.validated_data['substitution'],
# transfer_term=serializer.validated_data['transfer_term']
# )
schema.item.refresh_from_db()
return Response(
status=c.HTTP_200_OK,
data=s.RSFormParseSerializer(schema.item).data
)