コード例 #1
0
ファイル: endpoint.py プロジェクト: CHARMe-Project/djcharme
def advance_status(request):
    '''
        Advance the status of an annotation
    '''            
    if isPOST(request) and 'application/json' in content_type(request):
        params = json.loads(request.body) 
        LOGGING.info("advancing %s to state:%s" % (params.get('annotation'), params.get('toState')))
        tmp_g = change_annotation_state(params.get('annotation'), params.get('toState'))
        
        return HttpResponse(tmp_g.serialize())
コード例 #2
0
ファイル: node_gate.py プロジェクト: CHARMe-Project/djcharme
def advance_status(request):
    '''
        Advance the status of an annotation
    '''            
    if isPOST(request) and 'application/json' in content_type(request):
        params = json.loads(request.body) 
        if not params.has_key('annotation') or not params.has_key('state'):
            messages.add_message(request, messages.ERROR, "Missing annotation/state parameters")
            return mm_render_to_response_error(request, '400.html', 400)
        LOGGING.info("advancing %s to state:%s" % (params.get('annotation'), params.get('toState')))
        tmp_g = change_annotation_state(params.get('annotation'), params.get('toState'))
        
        return HttpResponse(tmp_g.serialize())
コード例 #3
0
ファイル: compose.py プロジェクト: CHARMe-Project/djcharme
def compose_annotation(request):
    context = {}
    logging.debug(request)
        
    if request.REQUEST.get('target_link', None):
        context['target_link'] = request.REQUEST.get('target_link')
        return mm_render_to_response(request, context, 'compose_annotation.html')
    
    if isPOST(request):
            insert_rdf('', request.body)
    #target_link = request.REQUEST['target_link']
    #extract_alternative_links(target_link)
    return mm_render_to_response(request, context, 'compose_annotation.html')
コード例 #4
0
ファイル: endpoint.py プロジェクト: CHARMe-Project/djcharme
def endpoint(request):
    if isGET(request):
        return processGET(request)
    if isPUT(request):
        return processPUT(request)
    if isDELETE(request):
        return processDELETE(request)
    if isPOST(request):
        return processPOST(request)
    if isHEAD(request):
        return processHEAD(request)
    if isPATCH(request):
        return processPATCH(request)            
コード例 #5
0
ファイル: endpoint.py プロジェクト: CHARMe-Project/djcharme
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
コード例 #6
0
ファイル: node_gate.py プロジェクト: CHARMe-Project/djcharme
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))