Esempio n. 1
0
def statistics():
    """
    Get a summary of the data accessible to a user

    """
    data = {'trip_reports': [], "schemata": []}
    return jsonify(data)
Esempio n. 2
0
def ingest_upload(collection_id):
    """
    post:
        Upload a document to a collection
    """
    collection = get_db_collection(collection_id)

    # meta, foreign_id = _load_metadata()
    upload_dir = ensure_path(mkdtemp(prefix="bard.upload"))
    meta, foreign_id = _load_metadata()

    log.warning("THE UPLOAD DIR LOOKS LIKE {}".format(upload_dir))

    try:
        content_hash = None
        for storage in request.files.values():
            path = safe_filename(storage.filename, default="upload")
            path = upload_dir.joinpath(path)
            storage.save(str(path))
            content_hash = archive.archive_file(path)
            log.warning(
                "IS THE CONTENT HASH EMPTY FROM THE INGEST API {}".format(
                    content_hash))
        log.warning("IS THE CONTENT HASH EMPTY FROM THE INGEST API {}".format(
            content_hash))
        document = Document.save(collection=collection,
                                 content_hash=content_hash,
                                 foreign_id=foreign_id)
        collection.touch()
        db.session.commit()

        return jsonify({"status": "ok", "id": document.id}, status=201)
    finally:
        shutil.rmtree(upload_dir)
Esempio n. 3
0
def password_login():
    """
    Provides email and password authentication
    """

    # require(settings.PASSWORD_LOGIN)
    request_data = request.get_json()
    email = request_data.get('email')
    password = request_data.get('password')
    log.warning("THE REQUEST DATA LOOKS LIKE {}".format(request_data))

    require(settings.PASSWORD_LOGIN)
    data = request.get_json()
    role = Role.login(data.get("email"), data.get("password"))

    #log.warning("LOGGING IN FROM THE SESSIONS API: {}".format(role.email))

    if role is None:
        raise BadRequest("Invalid user or password")
    #
    role.touch()
    db.session.commit()
    # update_role(role)
    authz = Authz.from_role(role)
    return jsonify({"status": "ok", "token": authz.to_token()})
Esempio n. 4
0
def update(id):
    role = obj_or_404(Role.by_id(id))
    data = request.get_json()
    role.update(data)
    db.session.add(role)
    db.session.commit()
    update_role(role)
    return jsonify(data)
Esempio n. 5
0
def create():
    data = request.get_json()
    email = "*****@*****.**"
    role = Role.by_email(email)

    if role is not None:
        return jsonify(
            {
                "status": "error",
                "message": "Email is already registered"
            },
            status=409)
    role = create_user(email, data.get("name"), data.get("password"))

    request.authz = Authz.from_role(role)

    return jsonify({"status": "ok"})
Esempio n. 6
0
def handle_bad_request(err):
    if err.response is not None and err.response.is_json:
        return err.response
    return jsonify({
        "status": "error",
        "message": "YOU DONE F****D UDVA"
    },
                   status=400)
Esempio n. 7
0
def metadata():
    """
    Get operation metadata for the frontend
    """
    request.rate_limit = None
    data = _metadata_locale()

    return jsonify(data)
Esempio n. 8
0
def logout():
    """Destroy the current authz session (state)"""
    request.rate_limit = None
    redirect_url = settings.APP_UI_URL
    if settings.OAUTH:
        metadata = oauth.provider.load_server_metadata()
        logout_endpoint = metadata.get("end_session_endpoint")
        if logout_endpoint is not None:
            query = {
                "post_logout_redirect_uri": redirect_url,
                "id_token_hint":
                cache.get(_token_session(request.authz.token_id))
            }
            redirect_url = logout_endpoint + "?" + urlencode(query)
    request.authz.destroy()
    return jsonify({"redirect": redirect_url})
Esempio n. 9
0
def _load_metadata():
    """
    Unpack the common, pre-defined metadata for all the uploaded files
    """
    log.warning("the request looks like {}".format(request))
    log.warning("BODY: %s", request.get_data())
    meta = {}
    foreign_id = stringify(meta.get("foreign_id"))
    log.warning("THE LENGTH OF REQUESTS.FILES {}".format(len(request.files)))
    if not len(request.files) and foreign_id is None:
        raise BadRequest(response=jsonify(
            {
                "status": "error",
                "message": "Directories need to have a foreign_id"
            },
            status=400))
    return meta, foreign_id
Esempio n. 10
0
def view(id):
    """Retrieve role details"""

    role = obj_or_404(Role.by_id(id))
    data = role.to_dict()
    return jsonify(data)
Esempio n. 11
0
def create_code():
    # require(request.authz.can_register())
    data = request.get_json()
    return jsonify({"status": "ok", "message": "To proceed, check your email"})
Esempio n. 12
0
 def jsonify_result(cls, result, extra=None, **kwargs):
     data = result.to_dict(serializer=cls)
     if extra is not None:
         data.update(extra)
     return jsonify(data, **kwargs)
Esempio n. 13
0
    def jsonify(cls, obj, **kwargs):

        collection = {"id": obj.id, "label": obj.label}
        return jsonify(collection)