示例#1
0
def login():

    content = request.get_json()

    if content is None:
        abort(400, 'Not es un JSON')

    id = content.get('id')
    password = content.get('password')

    usuario = storage.getbyid(id)

    autorizado = usuario.check_password(password)

    if not autorizado:
        return {'error': 'Usuario o password invalidos'}, 401

    if not usuario.activo:
        if usuario.__class__.__name__ == "Medico":
            expires = datetime.timedelta(days=7)
            access_token = create_access_token(identity=str(usuario.id),
                                               expires_delta=expires)
            return jsonify(
                {"http://0.0.0.0:5000/api/v1/change_password":
                 access_token}), 201
        return {'error': 'Debes confirmar tu registro primero'}, 401

    expires = datetime.timedelta(days=7)
    access_token = create_access_token(identity=str(usuario.id),
                                       expires_delta=expires)

    return jsonify({str(usuario.__class__.__name__): access_token})
示例#2
0
def change_password():
    """
    permite cambiar el password.
    """
    content = request.get_json()

    if content is None:
        abort(400, 'Not es un JSON')

    current_user = get_jwt_identity()

    old = content.get('old_password')
    new = content.get('new_password')

    usuario = storage.getbyid(current_user)

    autorizado = usuario.check_password(old)
    if not autorizado:
        return {'error': 'Password invalido'}, 401

    usuario.password = new
    usuario.hash_password()
    if usuario.__class__.__name__ == "Medico":
        usuario.activo = True
    usuario.save()

    return {"status": "ok"}, 200
示例#3
0
def consultar_observaciones():
    """
    permite a un usuario consultar
    registros permitidos.
    """
    observaciones = {}
    id_usuario = get_jwt_identity()
    usuario = storage.getbyid(id_usuario)
    if usuario.activo:
        observaciones = usuario.registro()
    else:
        return jsonify({"error": "usuario no authorizado"}), 401
    if len(observaciones) > 0:
        return jsonify(observaciones), 201
    else:
        return {"status": "No tiene registros guardados"}, 201
示例#4
0
def registrar_observacion():
    """
    permite a un medico registrar una
    observacion de un paciente.
    """
    content = request.get_json()
    if content is None:
        abort(400, 'Not es un JSON')

    usuario = get_jwt_identity()
    autorizacion = storage.es_medico(usuario)

    if not autorizacion:
        return jsonify({"error": "usuario no authorizado"}), 401

    formulario = content.get('formulario')
    medico = storage.getbyid(usuario)
    if medico.activo:
        medico.registrar_observacion(formulario)
        return jsonify({"status": "observacion registrada"}), 201
    else:
        return jsonify({"error": "usuario no authorizado"}), 401
示例#5
0
def descargar():
    """
    permite a un medico descargar
    registros de un paciente
    retorna el link de descarga.
    """
    content = request.get_json()
    if content is None:
        abort(400, 'Not es un JSON')

    paciente_id = content.get("paciente_id")
    usuario = get_jwt_identity()
    autorizacion = storage.es_medico(usuario)
    if not autorizacion:
        return jsonify({"error": "usuario no authorizado"}), 401
    medico = storage.getbyid(usuario)
    if medico.activo:
        filename = medico.descargar_registro(paciente_id)
        access_token = str(usertoken(filename))
        link = "http://0.0.0.0:5000/api/v1/descargar/" + str(access_token)
        return jsonify({"link": link})
    else:
        return jsonify({"error": "usuario no autorizado"}), 401