예제 #1
0
def edit_oai_pmh_xslt(request, id=None):
    if request.method == 'POST':
        try:
            xslt_id = request.POST['object_id']
            new_name = request.POST['new_name']
            new_name = new_name.strip(' \t\n\r')
            req = edit_oai_pmh_xslt_model(xslt_id, new_name)
            if req.status_code == status.HTTP_200_OK:
                messages.add_message(request, messages.INFO, 'XSLT edited with success.')
                return HttpResponse(json.dumps({}), content_type='application/javascript')
            #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:
            return HttpResponseBadRequest('An error occurred. Please contact your administrator.')
예제 #2
0
def edit_oai_pmh_xslt(request):
    """
    POST http://localhost/oai_pmh/api/edit/xslt
    POST data query='{"xslt_id":"value", "name": "value"}'
    """
    try:
        serializer = EditXSLTSerializer(data=request.DATA)
        if serializer.is_valid():
            #Get the ID
            id = request.DATA['xslt_id']
            new_name = request.DATA['name']
            return edit_oai_pmh_xslt_model(id, new_name)
        else:
            raise OAIAPISerializeLabelledException(errors=serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    except OAIAPIException as e:
        return e.response()
    except Exception as e:
        content = APIMessage.getMessageLabelled(e.message)
        return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)