Skip to content

Commit

Permalink
merge changes
Browse files Browse the repository at this point in the history
  • Loading branch information
mattdsteele committed Apr 15, 2012
2 parents e6b7d23 + f1be80c commit 0f488a5
Show file tree
Hide file tree
Showing 2 changed files with 162 additions and 1 deletion.
161 changes: 161 additions & 0 deletions api.rb
Expand Up @@ -28,6 +28,7 @@
"Welcome to the Omaha Food Fight!"
end

# get all the user info
get '/user' do
users = User.find(:all)

Expand Down Expand Up @@ -216,3 +217,163 @@
@superior = restaurants.sort_by { |r| r.user_rating }.reverse
erb :analytics
end

# list all restauarnts
get '/restaurants' do
restaurants = Restaurant.find(:all)

reply = Array.new

if restaurants.empty?
status 404
else
restaurants.each do |restaurant|
reply_entry = Hash.new
reply_entry[:name] = restaurant.name
reply_entry[:address] = restaurant.address
reply_entry[:rating] = restaurant.rating
reply_entry[:user_rating] = restaurant.user_rating
reply_entry[:wins] = restaurant.wins
reply_entry[:losses] = restaurant.losses

reply << reply_entry
end
end

reply.to_json
end

# find restaurants with name
get '/restaurants/:name' do
logger.info "looking up restaurant #{params[:name]}"

restaurants = Restaurant.where('name = ?', params[:name].upcase)

reply = Array.new

if restaurants.empty?
status 404
else
restaurants.each do |restaurant|
reply_entry = Hash.new
reply_entry[:name] = restaurant.name
reply_entry[:address] = restaurant.address
reply_entry[:rating] = restaurant.rating
reply_entry[:user_rating] = restaurant.user_rating
reply_entry[:wins] = restaurant.wins
reply_entry[:losses] = restaurant.losses

reply << reply_entry
end
end

reply.to_json
end

# find ratings with restaurants above threshold
get '/restaurants/rating/:rating' do
logger.info "looking up restaurants with rating #{params[:rating]}"

restaurants = Restaurant.where("rating = ?", params[:rating].upcase)

reply = Array.new

if restaurants.empty?
status 404
else
restaurants.each do |restaurant|
reply_entry = Hash.new
reply_entry[:name] = restaurant.name
reply_entry[:address] = restaurant.address
reply_entry[:rating] = restaurant.rating
reply_entry[:user_rating] = restaurant.user_rating
reply_entry[:wins] = restaurant.wins
reply_entry[:losses] = restaurant.losses

reply << reply_entry
end
end

reply.to_json
end

# find restaurants with ratings below threshold
get '/restaurants/rating/:rating/above' do
logger.info "looking up restaurants with rating above #{params[:rating]}"

ratings_list = Array.new

ratings_list << "SUPERIOR"

if params[:rating].upcase == "FAIR"
ratings_list << "FAIR" << "STANDARD" << "EXCELLENT"
elsif params[:rating].upcase == "STANARD"
ratings_list << "STANDARD" << "EXCELLENT"
elsif params[:rating].upcase == "EXCELLENT"
ratings_list << "EXCELLENT"
end

logger.info "rating group is #{ratings_list}"

restaurants = Restaurant.where("rating in (?)", ratings_list)

reply = Array.new

if restaurants.empty?
status 404
else
restaurants.each do |restaurant|
reply_entry = Hash.new
reply_entry[:name] = restaurant.name
reply_entry[:address] = restaurant.address
reply_entry[:rating] = restaurant.rating
reply_entry[:user_rating] = restaurant.user_rating
reply_entry[:wins] = restaurant.wins
reply_entry[:losses] = restaurant.losses

reply << reply_entry
end
end

reply.to_json
end

get '/restaurants/rating/:rating/below' do
logger.info "looking up restaurants with rating below #{params[:rating]}"

ratings_list = Array.new

ratings_list << "FAIR"

if params[:rating].upcase == "STANDARD"
ratings_list << "STANDARD"
elsif params[:rating].upcase == "EXCELLENT"
ratings_list << "STANDARD" << "EXCELLENT"
elsif params[:rating].upcase == "SUPERIOR"
ratings_list << "STANDARD" << "EXCELLENT" << "SUPERIOR"
end

logger.info "rating group is #{ratings_list}"

restaurants = Restaurant.where("rating in (?)", ratings_list)

reply = Array.new

if restaurants.empty?
status 404
else
restaurants.each do |restaurant|
reply_entry = Hash.new
reply_entry[:name] = restaurant.name
reply_entry[:address] = restaurant.address
reply_entry[:rating] = restaurant.rating
reply_entry[:user_rating] = restaurant.user_rating
reply_entry[:wins] = restaurant.wins
reply_entry[:losses] = restaurant.losses

reply << reply_entry
end
end

reply.to_json
end
2 changes: 1 addition & 1 deletion scripts/data-import-sqlite.rb
Expand Up @@ -19,7 +19,7 @@
csv.each do |line|
restaurant = Restaurant.new
restaurant.name = line[0].force_encoding('UTF-8')
restaurant.rating = line[1]
restaurant.rating = line[1].force_encoding('UTF-8')
restaurant.address = line[3].force_encoding('UTF-8')
restaurant.latitude = line[4]
restaurant.longitude = line[5]
Expand Down

0 comments on commit 0f488a5

Please sign in to comment.