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})
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
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
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
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