Exemplo n.º 1
0
def do_search_extracts(request):
    uri = request.GET.get('uri', None)
    if not uri:
        raise HTTPClientError("Please specify a URI")
    view_def = request.GET.get('view') or 'default'
    discussion = request.context
    user_id = authenticated_userid(request)
    if not user_id:
        # Straight from annotator
        token = request.headers.get('X-Annotator-Auth-Token')
        if token:
            token = decode_token(token,
                                 request.registry.settings['session.secret'])
            if token:
                user_id = token['userId']
    user_id = user_id or Everyone
    if not user_has_permission(discussion.id, user_id, P_READ):
        raise HTTPForbidden()
    permissions = [P_READ]

    if not uri:
        raise HTTPBadRequest("Please specify a search uri")
    content = Webpage.get_by(url=uri)
    if content:
        extracts = Extract.default_db.query(Extract).filter_by(
            content=content).all()
        rows = [
            extract.generic_json(view_def, user_id, permissions)
            for extract in extracts
        ]
        return {"total": len(extracts), "rows": rows}
    return {"total": 0, "rows": []}
Exemplo n.º 2
0
def do_search_extracts(request):
    uri = request.GET['uri']
    view_def = request.GET.get('view') or 'default'
    discussion_id = int(request.matchdict['discussion_id'])
    user_id = authenticated_userid(request) or Everyone
    permissions = get_permissions(user_id, discussion_id)

    if not uri:
        return HTTPBadRequest("Please specify a search uri")
    content = Webpage.get_by(url=uri)
    if content:
        extracts = Extract.default_db.query(Extract).filter_by(content=content).all()
        rows = [
            extract.generic_json(view_def, user_id, permissions)
            for extract in extracts]
        return {"total": len(extracts), "rows": rows}
    return {"total": 0, "rows": []}
Exemplo n.º 3
0
def do_search_extracts(request):
    uri = request.GET['uri']
    view_def = request.GET.get('view') or 'default'
    discussion_id = int(request.matchdict['discussion_id'])
    user_id = authenticated_userid(request) or Everyone
    permissions = get_permissions(user_id, discussion_id)

    if not uri:
        return HTTPBadRequest("Please specify a search uri")
    content = Webpage.get_by(url=uri)
    if content:
        extracts = Extract.default_db.query(Extract).filter_by(content=content).all()
        rows = [
            extract.generic_json(view_def, user_id, permissions)
            for extract in extracts]
        return {"total": len(extracts), "rows": rows}
    return {"total": 0, "rows": []}