def update(self, request, *args, **kwargs): partial = kwargs.pop('partial', False) instance = self.get_object() serializer = self.get_serializer(instance, data=request.data, partial=partial) serializer.is_valid(raise_exception=True) bpmn = serializer.validated_data['xml'] bpmn = ET.parse(io.StringIO(bpmn)) validator = Validator(bpmn) if (len(validator.validate_diagram()) == 0): serializer.validated_data['is_valid_form'] = True else: serializer.validated_data['is_valid_form'] = False self.perform_update(serializer) return Response(serializer.data)
def create(self, request, **kwargs): serializer = self.serializer_class(data=request.data) if serializer.is_valid(): bpmn = serializer.validated_data['xml'] bpmn = ET.parse(io.StringIO(bpmn)) validator = Validator(bpmn) if (len(validator.validate_diagram()) == 0): serializer.validated_data['is_valid_form'] = True else: serializer.validated_data['is_valid_form'] = False serializer.create(serializer.validated_data, request=request) return Response(serializer.validated_data, status=status.HTTP_201_CREATED) return Response({ 'message': serializer.errors, 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST)