def get(self, request, set_id): """Get a OaiProviderSet Args: request: HTTP request set_id: ObjectId Returns: - code: 200 content: Registry - code: 404 content: Object was not found - code: 500 content: Internal server error """ try: set_ = oai_provider_set_api.get_by_id(set_id) serializer = serializers.OaiProviderSetSerializer( set_, context={"request": request} ) return Response(serializer.data, status=status.HTTP_200_OK) except exceptions.DoesNotExist: content = OaiPmhMessage.get_message_labelled( "No Set found with the given id." ) return Response(content, status=status.HTTP_404_NOT_FOUND) except exceptions_oai.OAIAPIException as e: return e.response() except Exception as e: content = OaiPmhMessage.get_message_labelled(str(e)) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def patch(self, request, set_id): """ Update a OaiProviderSet Parameters: { "set_spec":"value", "set_name":"value", "templates_manager": ["id1", "id2"], "description":"value" } Args: request: HTTP request Returns: - code: 200 content: Success message - code: 400 content: Validation error - code: 404 content: Object was not found - code: 500 content: Internal server error """ try: set_ = oai_provider_set_api.get_by_id(set_id) # Build serializer serializer = serializers.OaiProviderSetSerializer( instance=set_, data=request.data) # Validate data serializer.is_valid(True) # Save data serializer.save() content = OaiPmhMessage.get_message_labelled( 'Set updated with success.') return Response(content, status=status.HTTP_200_OK) except ValidationError as validation_exception: content = OaiPmhMessage.get_message_labelled( validation_exception.detail) return Response(content, status=status.HTTP_400_BAD_REQUEST) except exceptions.DoesNotExist: content = OaiPmhMessage.get_message_labelled( 'No Set found with the given id.') return Response(content, status=status.HTTP_404_NOT_FOUND) except exceptions_oai.OAIAPIException as e: return e.response() except Exception as e: content = OaiPmhMessage.get_message_labelled(e.message) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def post(self, request): """ Create a OaiProviderSet Parameters: { "set_spec": "value", "set_name":"value", "templates_manager": ["id1", "id2"], "description":"value" } Args: request: HTTP request Returns: - code: 201 content: Success Label - code: 400 content: Validation error - code: 500 content: Internal server error """ try: # Build serializer serializer = serializers.OaiProviderSetSerializer( data=request.data) # Validate data serializer.is_valid(True) # Save data serializer.save() content = OaiPmhMessage.get_message_labelled( 'Set added with success.') return Response(content, status=status.HTTP_201_CREATED) except ValidationError as validation_exception: content = OaiPmhMessage.get_message_labelled( validation_exception.detail) return Response(content, status=status.HTTP_400_BAD_REQUEST) except exceptions_oai.OAIAPIException as e: return e.response() except Exception as e: content = OaiPmhMessage.get_message_labelled(e.message) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def get(self, request): """ Get all OaiProviderSet Args: request: HTTP request Returns: - code: 200 content: List of OaiProviderSet - code: 500 content: Internal server error """ try: sets = oai_provider_set_api.get_all() serializer = serializers.OaiProviderSetSerializer(sets, many=True) return Response(serializer.data, status=status.HTTP_200_OK) except Exception as e: content = OaiPmhMessage.get_message_labelled(e.message) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)