Exemple #1
0
def get_region(search_term):
	session = dbconnect()
	try:
		region_instance = session.query(Region).filter(Region.region_name == search_term).one()
		return jsonify(region_instance.id), 200
	except:
		return "Region doesn't exist in database", 400
Exemple #2
0
def getStatus(boatName):
    session = dbconnect()
    status = session.query(BoatLog).filter(
        BoatLog.boatName == boatName).order_by(BoatLog.time.desc()).first()
    status = status.__dict__
    status.pop("_sa_instance_state")
    return status
Exemple #3
0
def getTrack(boatName):
    session = dbconnect()
    logs = session.query(BoatLog).filter(BoatLog.boatName == boatName).all()
    print(logs)
    output = []
    for log in logs:
        output.append([log.lat, log.lon])
    return output
Exemple #4
0
def get_species(search_term):
    session = dbconnect()
    return_list = []
    print(search_term)
    for row in session.query(Species).filter(
            Species.scientific_name == search_term).all():
        row_dict = row.__dict__
        row_dict.pop("_sa_instance_state")
        return_list.append(row_dict)
    return jsonify(return_list)
Exemple #5
0
def add_park():
	session = dbconnect()
	request_dict = request.get_json()
	try:
		# Check if state (parent of park) is existing so api doesn't add park without state (which will only be added with its parent Region)
		state_instance = session.query(State).filter(State.id == request_dict["state_id"]).one()
	except exc.IntegrityError:
		return "State does not exist", 400
	# Add the data to the queue
	q.enqueue(add_park_from_queue, request_dict)
	return "OK", 200
Exemple #6
0
def cool():
    session = dbconnect()
    specimens = session.query(Specimen).all()
    # Serialisation starts here
    row_list = []
    for specimen in specimens:
        row_dict = {}
        row_dict["name"] = specimen.name
        row_dict["birth_date_time"] = specimen.birth_date_time
        row_list.append(row_dict)
    return jsonify(row_list)
Exemple #7
0
def getOrAddUser(user_input):
    session = dbconnect()
    try:
        user = session.query(User).filter(
            User.email == user_input["email"]).one()
    except:
        user = User()
        user.name = user_input["name"]
        user.email = user_input["email"]
    session.close()
    return user
Exemple #8
0
def add_region():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        region_instance = Region()
        region_instance.region_name = request_dict["Region"]
        session.add(region_instance)
        session.commit()
        return jsonify(region_instance.id)
    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #9
0
def add_genus():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        genus_instance = Genus()
        genus_instance.scientific_name = request_dict["scientific_name"]
        session.add(genus_instance)
        session.commit()
        return jsonify(genus_instance.id)
    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #10
0
def add_state():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        state_instance = State()
        state_instance.state_name = request_dict["State"]
        session.add(state_instance)
        session.commit()
        return jsonify(state_instance.id)
    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #11
0
def add_genus():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        genus_instance = session.query(Genus).filter(
            Genus.scientific_name == request_dict["scientific_name"]).one()
        return "Genus already exists", 400
    except:
        genus_instance = Genus()
        genus_instance.scientific_name = request_dict["scientific_name"]
        session.add(genus_instance)
        session.commit()
        return "ok"
Exemple #12
0
def get_park(search_term):
	session = dbconnect()
	return_list = []
	if search_term == "all":
		for row in session.query(Park).all():
			row_dict = row.__dict__
			row_dict.pop("_sa_instance_state")
			return_list.append(row_dict)
	else:
		for row in session.query(Park).filter(Park.park_name == search_term).all():
			row_dict = row.__dict__
			row_dict.pop("_sa_instance_state")
			return_list.append(row_dict)
	return jsonify(return_list)
Exemple #13
0
def get_species(search_term):
    session = dbconnect()
    return_list = []
    if search_term == "all":
        for row in session.query(Species).all():
            row_dict = row.__dict__
            row_dict.pop("_sa_instance_state")
            return_list.append(row_dict)
    else:
        for row in session.query(Species).filter(Species.id == search_term).all():
            row_dict = row.__dict__
            row_dict.pop("_sa_instance_state")
            return_list.append(row_dict)
    return jsonify(return_list)
Exemple #14
0
def add_species():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        genus_instance = session.query(Genus).filter(
            Genus.scientific_name == request_dict["genus"]
            ["scientific_name"]).one()
    except:
        return "Genus does not exist, please add it", 400
    species = Species()
    species.scientific_name = request_dict["scientific_name"]
    species.common_name = request_dict["common_name"]
    species.genus_id = genus_instance.id
    session.add(species)
    session.commit()
    return "ok"
Exemple #15
0
def add_specimen():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        species = session.query(Species).filter(
            Species.scientific_name == request_dict["species"]
            ["scientific_name"]).one(
            )  #fix the database table so that there is only one
    except:
        return "Species does not exist, please add it", 400
    specimen = Specimen()
    specimen.name = request_dict["name"]
    specimen.birth_date_time = request_dict["birth_date_time"]
    specimen.species_id = species.id
    session.add(specimen)
    session.commit()
    return "ok"
Exemple #16
0
def add_state():
    session = dbconnect()
    request_dict = request.get_json()
    try: 
        region_instance = session.query(Region).filter(Region.id == request_dict["region_id"]).one()
    except: 
        return "Region does not exist, please add it", 400

    try:
        state_instance = State()
        state_instance.state_name = request_dict["State"]
        session.add(state_instance)
        session.commit()
        return jsonify(state_instance.id)
    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #17
0
def add_specimen(): 
    session = dbconnect()
    request_dict = request.get_json()
    try: 
        species = session.query(Species).filter(Species.id == request_dict["species"]["id"]).one()
    except: 
        return "Species does not exist, please add it", 400
    try:
        specimen = Specimen()
        specimen.name = request_dict["name"]
        specimen.birth_date_time = request_dict["birth_date_time"]
        specimen.species_id = species.id    
        session.add(specimen)
        session.commit()
        return jsonify(specimen.id)
    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #18
0
def add_species():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        genus_instance = session.query(Genus).filter(Genus.id == request_dict["genus"]["id"]).one()
    except:
        return "Genus does not exist, please add it", 400
    
    try:
        species = Species() 
        species.scientific_name = request_dict["scientific_name"]
        species.common_name = request_dict["common_name"]
        species.genus_id = genus_instance.id
        session.add(species)
        session.commit()
        return jsonify(species.id)
    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #19
0
def add_station():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        # ["Region"]["id"] is then called in csv_import.py within the dict
        region_instance = session.query(Region).filter(
            Region.id == request_dict["Region"]["id"]).one()
    except:
        return "Region does not exist, please add it", 400

    try:
        station = Station()
        station.station_name = request_dict["Station Name"]
        station.total_1819 = request_dict["1819 Entries & Exits"]
        station.region_id = region_instance.id
        session.add(station)
        session.commit()
        return jsonify(station.id)
    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #20
0
def addBoat(boat_input):
    # Get or create user
    user = getOrAddUser(boat_input)
    # Database
    session = dbconnect()
    boat = Boat()
    boat.name = boat_input["boat"]["name"]
    boat.started = boat_input["boat"]["started"]
    boat.boatType = boat_input["boat"]["boatType"]
    boat.desiredCourse = boat_input["boat"]["desiredCourse"]
    boat.isActive = boat_input["boat"]["isActive"]
    boat.boatFlags = boat_input["boat"]["boatFlags"]
    boat.race = addBoatRace(session, boat_input["boat"]["race"])
    boat.user = user
    session.add(boat)
    session.commit()
    session.flush()
    # Core
    addBoatinCore(boat.name, boat_input["boat"]["race"]["startLat"],
                  boat_input["boat"]["race"]["startLon"], boat.boatType,
                  boat.boatFlags, boat.id)
    return boat.id
def add_park_from_queue(request_dict):
    session = dbconnect()
    try:
        state_instance = session.query(State).filter(
            State.id == request_dict["state_id"]).one()
    except:
        # wrong. Not sure why this was wrong before? Json stuff only
        return "State does not exist, please add it", 400

    try:
        park = Park()
        park.park_name = request_dict["Park"]
        park.state = state_instance
        session.add(park)
        session.commit()
        # removed json below because this is for flask
        return park.id

    except exc.IntegrityError:
        session.rollback()
        # wrong
        return "already exists", 400
Exemple #22
0
def get_genus_and_species_and_specimen(search_term):
    if request.method == 'GET':
        return_list = []
        session = dbconnect()

        for genus_instance, species_instance, specimen_instance in session.query(
                Genus, Species,
                Specimen).filter(Genus.id == search_term,
                                 Genus.id == Species.genus_id,
                                 Species.id == Specimen.species_id).all():

            row = {}
            row["genus_id"] = genus_instance.id
            row["genus_scientific_name"] = genus_instance.scientific_name
            row["species_id"] = species_instance.id
            row["species_scientific_name"] = species_instance.scientific_name
            row["specimen_id"] = specimen_instance.id
            row["specimen_name"] = specimen_instance.name
            return_list.append(row)
        return jsonify(return_list)
    else:
        return "Unsupported Method"
Exemple #23
0
def add_county():
    session = dbconnect()
    request_dict = request.get_json()
    try:
        state_instance = session.query(State).filter(
            State.id == request_dict["state_id"]).one()
    except:
        return "State does not exist, please add it", 400

    try:
        county = County()
        county.county_name = data_input["County"]
        county.majority_white = data_input[
            "Ethnicities.White Alone, not Hispanic or Latino"]
        county.state = state_instance
        session.add(county)
        session.commit()
        return jsonify(county.id)

    except exc.IntegrityError:
        session.rollback()
        return "already exists", 400
Exemple #24
0
        state = State()
        state.state_name = data_input["State"]
        session.add(state)
    try:
        county = County()
        county.county_name = data_input["County"]
        county.majority_white = data_input["Ethnicities.White Alone, not Hispanic or Latino"]
        county.state = state
        session.add(county)
        session.commit()
    except exc.IntegrityError:
        session.rollback()
        


def import_data(filename):
    return_list = []
    with open(filename, newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            return_list.append(dict(row))
    return return_list

session=dbconnect()

imported_counties = import_data("county_demographics.csv")

for row in imported_counties:
    addData(session, row)
# inputs for addData are (session, data_input). The order assures that row is taken as the data_input, not necessary to assign elsewhere