Skip to content

Commit

Permalink
Map shows correct restaurant visits for a user. Fixes #23
Browse files Browse the repository at this point in the history
  • Loading branch information
Ashley Hsiao authored and Ashley Hsiao committed May 26, 2016
1 parent 078cbab commit 78704de
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 27 deletions.
48 changes: 24 additions & 24 deletions server.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,30 @@ def user_profile(user_id):
return render_template("user_profile.html", user=user, friends=friends, pending_request=pending_request)


@app.route("/users/<int:user_id>/visits.json")
def user_restaurant_visits(user_id):
"""Return info about a user's restaurant visits as JSON."""

# Query to get all visits for a user
user_visits = db.session.query(Visit).filter(Visit.user_id == user_id).all()

rest_visits = {}

for visit in user_visits:
rest_visits[visit.visit_id] = {
"restaurant": visit.restaurant.name,
"address": visit.restaurant.address,
"phone": visit.restaurant.phone,
"image_url": visit.restaurant.image_url,
# Need to convert latitude and longitude to floats
# Otherwise get a TypeError: Decimal is not JSON serializable
"latitude": float(visit.restaurant.latitude),
"longitude": float(visit.restaurant.longitude)
}

return jsonify(rest_visits)


@app.route("/add-friend", methods=["POST"])
def add_friend():
"""Send a friend request to another user."""
Expand Down Expand Up @@ -224,30 +248,6 @@ def show_friends_and_requests():
friends=friends)


@app.route("/user-visits.json")
def user_restaurant_visits():
"""Return info about user's restaurant visits as JSON."""

# Query to get all visits for current logged in user (pass in user id from session)
user_visits = db.session.query(Visit).filter(Visit.user_id == session["current_user"]["user_id"]).all()

rest_visits = {}

for visit in user_visits:
rest_visits[visit.visit_id] = {
"restaurant": visit.restaurant.name,
"address": visit.restaurant.address,
"phone": visit.restaurant.phone,
"image_url": visit.restaurant.image_url,
# Need to convert latitude and longitude to floats
# Otherwise get a TypeError: Decimal is not JSON serializable
"latitude": float(visit.restaurant.latitude),
"longitude": float(visit.restaurant.longitude)
}

return jsonify(rest_visits)


@app.route("/restaurants")
def restaurant_list():
"""Show list of restaurants."""
Expand Down
8 changes: 7 additions & 1 deletion static/js/breadcrumbs-map.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
"use strict";

// Define global variable so URL with user id for JSON can be passed into AJAX get request
var user_visits_json = "/users/" + $("#user-info").data("userid") + "/visits.json";

// Initialize Google Map
function initMap() {

// Specify where the map is centered
Expand Down Expand Up @@ -41,7 +47,7 @@ function initMap() {
// Make AJAX call to server to get JSON that has info re: user's visits
// For every restaurant that the user has visited, place markers on map
// with an info window for each marker when clicked
$.get('/user-visits.json', function (visits) {
$.get(user_visits_json, function (visits) {

for (var key in visits) {
var visit = visits[key];
Expand Down
4 changes: 2 additions & 2 deletions templates/user_profile.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

{% block content %}

<div>
<div id="user-info" data-userid="{{ user.user_id }}">
<p>
User ID {{ user.user_id }}<br>
Name: {{ user.first_name }} {{ user.last_name }}<br>
Expand Down Expand Up @@ -51,7 +51,7 @@
evt.preventDefault();

var formInputs = {
"user_b_id": {{ user.user_id }}
"user_b_id": $("#user-info").data("userid")
};

$.post("/add-friend",
Expand Down

0 comments on commit 78704de

Please sign in to comment.