def api_put(_id): if not session_handler(): return jsonify( {"message": "Necesitas Loggearte para ver esta información"}) nuevo_modelo = request.json["modelo"] nueva_marca = request.json["marca"] nuevo_ano = request.json["año"] nuevo_kilometraje = request.json["kilometraje"] output = [] try: serialized_id = ObjectId(_id) except: return jsonify({"message": "ID invalido"}) obj = cars_collection.find_one_and_update({"_id": serialized_id}, { "$set": { "modelo": nuevo_modelo, "marca": nueva_marca, "año": nuevo_ano, "kilometraje": nuevo_kilometraje } }) if obj: return jsonify({"message": "Carro actualizado exitosamente"}) else: return jsonify({"message": "Not found"})
def users(): if session_handler(): objects = users_collection.find() ouput = [] for obj in objects: if obj["carro"]: deserialized_id = loads(obj["carro"]) carro = cars_collection.find_one( {"_id": ObjectId(deserialized_id)}) d_carro = { "_id": str(carro["_id"]), "modelo": carro["modelo"], "marca": carro["marca"], "año": carro["año"], "kilometraje": carro["kilometraje"] } ouput.append({ "username": obj["username"], "password": obj["password"], "carro": d_carro }) else: ouput.append({ "username": obj["username"], "password": obj["password"], "carro": obj["carro"] }) return jsonify({"result": ouput}) return jsonify({ "message": "Necesitas Loggearte para ver la lista de usuarios primero" })
def register(): if session_handler(): return jsonify({ "message": "Ya te encuentras loggeado como {}".format(session["username"]) }) if request.method == "POST": username = request.json["username"] password = request.json["password"] found_user = users_collection.find_one({"username": username}) if not found_user: users_collection.insert_one({ "username": username, "password": generate_password_hash(password), "carro": False }) return jsonify({"message": "Usuario Añadido con exito"}) else: return jsonify({ "message": "El usuario que intentas registrar no esta disponible. Intenta denuevo" }) return jsonify({ "message": "Necesitas enviar un Post Request a register para registrarte" })
def login(): if session_handler(): return jsonify({ "message": "Ya te encuentras loggeado como {}".format(session["username"]) }) if request.method == "POST": username = request.json["username"] password = request.json["password"] found_user = users_collection.find_one({"username": username}) if found_user != None and check_password_hash(found_user["password"], password): session["username"] = username session.permantent = True return jsonify({ "message": "Logeado correctamente como {}".format(session["username"]) }) return jsonify({ "message": "El usuario no ha sido creado o el password es incorrecto. Verificar Credenciales" }) return jsonify({ "message": "Necesitas Iniciar sesion primero mediante a un POST Request" })
def api_post(): if not session_handler(): return jsonify( {"message": "Necesitas Loggearte para añadir un nuevo carro"}) output = [] new_car = { "modelo": request.json["modelo"], "marca": request.json["marca"], "año": request.json["año"], "kilometraje": request.json["kilometraje"], "alquilado": False } cars_collection.insert_one(new_car) return jsonify( {"message": "Carro Añadido exitosamente a la base de Datos"})
def api_delete(_id): if not session_handler(): return jsonify( {"message": "Necesitas Loggearte para ver esta información"}) try: serialized_id = ObjectId(_id) except: return jsonify({"message": "ID Invalido"}) obj = cars_collection.find_one_and_delete({"_id": serialized_id}) print(obj) if obj != None: return jsonify( {"message": "Carro eliminado con exito de la base de datos"}) else: return jsonify({"message": "Carro no encontrado"})
def rentar(_id): if not session_handler(): return jsonify( {"message": "Necesitas Loggearte para ver esta información"}) if request.method == "POST": carro = cars_collection.find_one_and_update( {"_id": ObjectId(_id)}, {"$set": { "alquilado": True }}) username = request.json["username"] user = users_collection.find_one_and_update( {"username": username}, {"$set": { "carro": dumps(carro["_id"]) }}) return jsonify({"message": "Carro rentado exitosamente"}) return jsonify({ "message": "Necesitas realizar un POST Request para alquilar un carro" })
def profile(username): if session_handler() == username: obj = users_collection.find_one({"username": username}) output = [] output.append({ "_id": str(obj["_id"]), "username": obj["username"], "password": obj["password"], "carro": str(loads(obj["carro"])) }) return jsonify( { "message": "Bienvenido a tu perfil {}".format( session["username"]) }, {"resultado": output}) return jsonify({ "message": "Este no es tu perfil o no te has loggeado. Verifica tu informacion." })