Ejemplo n.º 1
0
 def __init__(self, data):
     geo = Geo()
     from_geopos = geo.get_geoloc(data["from"]["address"])
     if {} == from_geopos:
         logging.error("Cannot find coordinates for {}".format(data["from"]["address"])) 
         self.ride = None
         return
     to_geopos = geo.get_geoloc(data["to"]["address"])
     if {} == to_geopos:
         logging.error("Cannot find coordinates for {}".format(data["to"]["address"])) 
         self.ride = None
         return
     self.ride = {
         "user_id": data["user_id"],
         "created_at": datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
         "start_at": data["start_at"],
         "from": {
             "address": data["from"]["address"],
             "zip_code": data["from"]["zip_code"],
             "coordinates": from_geopos
         },
         "to": {
             "address": data["to"]["address"],
             "zip_code": data["to"]["zip_code"],
             "coordinates": to_geopos
         },
         "iteration": {
             "todo": get_conf("number_of_iteration"),
             "done": 0
         },
         "status": "pending",
         "seat_count": data["number_seat"],
         "prices": {
         }
     }
Ejemplo n.º 2
0
 def __init__(self):
     self.token = get_conf("uber_app_id")
     self.available_seats = {
         "Pool": 2,
         "UberX": 4,
         "Green": 4,
         "Van": 6,
         "ACCESS": 4,
         "Berline": 4
     }
Ejemplo n.º 3
0
def scheduler():
    mongo = Mongodb('rides')
    rides = list(
        mongo.get_pending_rides(datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
    logging.info("{} Rides found".format(len(rides)))
    async_list = []
    for ride in rides:
        logging.info(ride["_id"])
        action_item = grequests.get(
            "{}/rides/{}?size=0&update=True&apps=*".format(
                get_conf("api_hostname"), ride["_id"]))  #,  verify=False)
        async_list.append(action_item)
        #requests.get("http://0.0.0.0:5000/weleave/{}".format(ride["_id"]))
    grequests.map(async_list)
Ejemplo n.º 4
0
def get_apps_details():
    try:
        qs = parse.parse_qs(request.query_string.decode())
        os = qs["os"][0]
    except:
        return Response(status=400)
    if os not in ["ios", "android"]:
        return Response(status=400)
    hostname = get_conf("api_hostname")
    if os == "android":
        return Response(
            response=json.dumps({
                "uber": {
                    "picture_link": "{}/apps/pictures/uber".format(hostname),
                    "deeplink": "",
                    "rating": "4.2"
                },
                "marcel": {
                    "picture_link": "{}/apps/pictures/marcel".format(hostname),
                    "deeplink": "",
                    "rating": "3.9"
                },
                "snapcar": {
                    "picture_link": "{}/apps/pictures/snapcar".format(hostname),
                    "deeplink": "",
                    "rating": "3.4"
                },
                "allocab": {
                    "picture_link": "{}/apps/pictures/allocab".format(hostname),
                    "deeplink": "",
                    "rating": "3.9"
                },
                "g7": {
                    "picture_link": "{}/apps/pictures/g7".format(hostname),
                    "deeplink": "",
                    "rating": "3.7"
                },
                "drive": {
                    "picture_link": "{}/apps/pictures/drive".format(hostname),
                    "deeplink": "",
                    "rating": ""
                },
                "citybird": {
                    "picture_link": "{}/apps/pictures/citybird".format(hostname),
                    "deeplink": "",
                    "rating": "4.3"
                },
                "felix": {
                    "picture_link": "{}/apps/pictures/felix".format(hostname),
                    "deeplink": "",
                    "rating": "3.2"
                },
                "lecab": {
                    "picture_link": "{}/apps/pictures/lecab".format(hostname),
                    "deeplink": "",
                    "rating": "3.7"
                },
                "taxify": {
                    "picture_link": "{}/apps/pictures/taxify".format(hostname),
                    "deeplink": "",
                    "rating": "4.2"
                },
                "talixo": {
                    "picture_link": "{}/apps/pictures/talixo".format(hostname),
                    "deeplink": "",
                    "rating": "3.9"
                }
            }),
            status=200,
            mimetype='application/json'
        )
    return Response(
        response=json.dumps({
            "uber": {
                "picture_link": "{}/apps/pictures/uber".format(hostname),
                "deeplink": "",
                "rating": "4.2"
            },
            "marcel": {
                "picture_link": "{}/apps/pictures/marcel".format(hostname),
                "deeplink": "",
                "rating": "3.1"
            },
            "snapcar": {
                "picture_link": "{}/apps/pictures/snapcar".format(hostname),
                "deeplink": "",
                "rating": "3.8"
            },
            "allocab": {
                "picture_link": "{}/apps/pictures/allocab".format(hostname),
                "deeplink": "",
                "rating": "4.7"
            },
            "g7": {
                "picture_link": "{}/apps/pictures/g7".format(hostname),
                "deeplink": "",
                "rating": "3.9"
            },
            "drive": {
                "picture_link": "{}/apps/pictures/drive".format(hostname),
                "deeplink": "",
                "rating": "4.9"
            },
            "citybird": {
                "picture_link": "{}/apps/pictures/citybird".format(hostname),
                "deeplink": "",
                "rating": "4.4"
            },
            "felix": {
                "picture_link": "{}/apps/pictures/felix".format(hostname),
                "deeplink": "",
                "rating": "3.5"
            },
            "lecab": {
                "picture_link": "{}/apps/pictures/lecab".format(hostname),
                "deeplink": "",
                "rating": "3.7"
            },
            "taxify": {
                "picture_link": "{}/apps/pictures/taxify".format(hostname),
                "deeplink": "",
                "rating": "4.8"
            },
            "talixo": {
                "picture_link": "{}/apps/pictures/talixo".format(hostname),
                "deeplink": "",
                "rating": "4.6"
            }
        }),
        status=200,
        mimetype='application/json'
    )
Ejemplo n.º 5
0
def get_apps_picture(app_name):
    if app_name not in get_conf("apps"):
        return Response(status=404)
    return send_file("../assets/{}.jpg".format(app_name), mimetype='image/gif')
Ejemplo n.º 6
0
from flask import Flask
import logging
import flask_monitoringdashboard as dashboard

from datetime import datetime
from utils.ConfManager import get_conf
import controllers.users as users
import controllers.rides as rides
import controllers.apps as apps

app = Flask(__name__)
dashboard.bind(app)
# Initial logger
if get_conf("log_in_file"):
    filename = '/logs/weleave_api_{}.log'.format(
        datetime.now().strftime('%Y-%m-%d'))
    logging.basicConfig(filename=filename,
                        level=logging.INFO,
                        format='%(asctime)s - %(levelname)s - %(message)s')
    logging.info("Redirect logs to {}".format(filename))
else:
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s - %(levelname)s - %(message)s')

# Register routes
# Rides
app.register_blueprint(rides.init_ride_route)
app.register_blueprint(rides.stop_ride_route)
app.register_blueprint(rides.get_ride_route)
app.register_blueprint(rides.extend_ride_route)
# Apps
Ejemplo n.º 7
0
 def __init__(self, tablename):
     client = MongoClient(get_conf("mongodb_host"),
                          get_conf("mongodb_port"))
     db = client['weleave']
     self.collection = db[tablename]