def process_data(request, resource_id): if 'text/html' in http_accept(request): return process_resource(request, resource_id = None) req_format = validateMimeFormat(request) if req_format is None: return process_resource(request, resource_id) tmp_g = find_resource_by_id(resource_id) return HttpResponse(tmp_g.serialize(format = req_format), mimetype = FORMAT_MAP.get(req_format))
def _validateFormat(request): ''' Returns the mimetype of the required format as mapped by rdflib return: String - an allowed rdflib mimetype ''' req_format = None if isGET(request): req_format = FORMAT_MAP.get(request.GET.get('format', None)) if isPOST(request): req_format = request.environ.get('CONTENT_TYPE', None) if req_format: if req_format not in FORMAT_MAP.values(): raise SerializeError("Cannot generate the required format %s " % req_format) return req_format
def insert(request): ''' Inserts in the triplestore a new annotation under the "ANNO_SUBMITTED" graph ''' try: req_format = _validateFormat(request) except SerializeError as e: messages.add_message(request, messages.ERROR, e) return mm_render_to_response_error(request, '400.html', 400) if isPOST(request) or isOPTIONS(request): triples = request.body tmp_g = insert_rdf(triples, req_format, graph=ANNO_SUBMITTED) ret_format = validateMimeFormat(request) if ret_format is None: ret_format = req_format return HttpResponse(__serialize(tmp_g, req_format = ret_format), content_type=FORMAT_MAP.get(ret_format))