def add_my_template_metadataFormat(request): if request.method == 'POST': form = MyTemplateMetadataFormatForm(request.POST) if form.is_valid(): try: #We retrieve information from the form if 'metadataPrefix' in request.POST: metadataprefix = request.POST.get('metadataPrefix') else: return HttpResponseBadRequest('Please enter a metadata prefix.') if 'template' in request.POST: template = request.POST.get('template') else: return HttpResponseBadRequest('Please choose a template.') #Call to the API to add the template metadata prefix try: req = add_my_template_metadataFormat_model(metadataprefix, template) #If the status is OK, sucess message if req.status_code == status.HTTP_201_CREATED: messages.add_message(request, messages.SUCCESS, 'Metadata Format added with success.') return HttpResponse('CREATED') #Else, we return a bad request response with the message provided by the API else: data = req.data return HttpResponseBadRequest(data[APIMessage.label]) except OAIAPIException as e: return HttpResponseBadRequest(e.message) except Exception as e: return HttpResponseBadRequest('An error occurred. Please contact your administrator.') except Exception as e: return HttpResponseBadRequest('An error occurred. Please contact your administrator.') else: return HttpResponseBadRequest('Bad entries. Check your entry')
def add_my_template_metadataFormat(request): """ POST http://localhost/oai_pmh/api/add/my-template-metadataformat POST data query='{"metadataPrefix":"value", "template":"templateID"}' """ try: #Serialization of the input data serializer = MyTemplateMetadataFormatSerializer(data=request.DATA) #If it's valid if serializer.is_valid(): metadataprefix = request.DATA['metadataPrefix'] template = request.DATA['template'] return add_my_template_metadataFormat_model(metadataprefix, template) else: raise OAIAPISerializeLabelledException(errors=serializer.errors, status=status.HTTP_400_BAD_REQUEST) except OAIAPIException as e: return e.response() except Exception, e: content = APIMessage.getMessageLabelled('Unable to add the new metadata format. \n%s'%e.message) return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)