mirror of
https://github.com/iritmaximus/brewery.git
synced 2026-10-12 19:13:49 +03:00
added weather to places
This commit is contained in:
@@ -4,6 +4,8 @@ class PlacesController < ApplicationController
|
||||
|
||||
def search
|
||||
@places = BeermappingApi.places_in(params[:city])
|
||||
@weather = Place.weather params[:city]
|
||||
@city = params[:city]
|
||||
if @places.empty?
|
||||
redirect_to places_path, notice: "No locations in #{params[:city]}"
|
||||
else
|
||||
|
||||
@@ -2,4 +2,41 @@ class Place < OpenStruct
|
||||
def self.rendered_fields
|
||||
[:id, :name, :status, :street, :city, :zip, :country, :overall]
|
||||
end
|
||||
|
||||
def self.weather location
|
||||
weather_api_key = self.api_key
|
||||
weather_api_url = "http://api.weatherstack.com/current"
|
||||
|
||||
response = HTTParty.get "#{weather_api_url}?access_key=#{weather_api_key}&query=#{location}"
|
||||
|
||||
#if response["success"]
|
||||
puts "#{weather_api_url}?access_key=#{weather_api_key}&query=#{location}"
|
||||
puts response.parsed_response
|
||||
data = response.parsed_response["current"]
|
||||
if data.nil?
|
||||
return
|
||||
end
|
||||
|
||||
weather = self.parse_weather_data data
|
||||
return weather
|
||||
end
|
||||
|
||||
def self.parse_weather_data data
|
||||
temperature = data["temperature"]
|
||||
weather_icon = data["weather_icons"][0]
|
||||
weather_descriptions = data["weather_descriptions"][0]
|
||||
weather_icon = { image: weather_icon, description: weather_descriptions}
|
||||
wind_direction = data["wind_dir"]
|
||||
wind_speed = data["wind_speed"]
|
||||
wind = { direction: wind_direction, speed: wind_speed }
|
||||
weather = { temperature: temperature, wind: wind, weather_icon: weather_icon}
|
||||
return weather
|
||||
end
|
||||
|
||||
def self.api_key
|
||||
return nil if Rails.env.test?
|
||||
key = Rails.application.credentials.weatherstack_api_key
|
||||
raise 'WEATHERSTACK_API_KEY env variable not defined in credentials' if key.nil?
|
||||
return key
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,6 +7,16 @@
|
||||
|
||||
|
||||
<%= notice %>
|
||||
<% if @weather %>
|
||||
<div>
|
||||
<strong>
|
||||
The current beer weather in <%= @city%>
|
||||
</strong>
|
||||
<p><%= @weather[:temperature] %> Celcius</p>
|
||||
<img src=<%= @weather[:weather_icon][:image] %> alt=<%= @weather[:weather_icon][:description] %>>
|
||||
<p><strong>Wind: </strong><%= @weather[:wind][:speed] %>, direction <%= @weather[:wind][:direction]%></p>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if @places %>
|
||||
<table>
|
||||
<thead>
|
||||
|
||||
@@ -1 +1 @@
|
||||
Gc10IM4hcI/b0NKtz5TTTCTVHrY0qLbRMMoJ0Bki0YGJ01VIFfIIXvX11fBV216+FbmKzxyQNw7qsK561O0EM4LCrAseiX2kdzWp8pQOUiKGAL2X9FKHYQ3anVhVkXtFjFnV+nSB1Hj8ALyP4xiApkNTdGxVO7bsLpDAi+EmkE1gUKoNcNZG4ADYFC5RG8ScH4CZudjTqT4SddGavTCVVZY/Tk6EipJtFGSt0GZIZw4GFfuetN7fXtl9BKgtRwEaUoiTcpE+bek5QMtQfG2F+FCv7IjOsTpgEXSXquyxBeIikNxbGlB/xYDPPEQJJ+AZMbJ8Ek5SWpXsWs7Z+5yEWmC8A507Lq4ogiwaLCO17kR0clOGUbJBYm5CmhuQS1I3OfW8RvE8FHF3UC0k49rorIf3cJsAD/SsZkzV3IrrGSv7aWod9317gWnPRQJPIAKWjXLsSGtKQuIuuogjKJs70tXhFJGroVQ=--07F7ribi1AB1d2T1--tY87Ixbc99OLfqYM9J0Ndg==
|
||||
tJ0X+G0ED1Nvie5fvlyo4X51kqNyukq/tLd6fXh5alSRrq4E5G0PxGy/X2CRZYau1EPxIFQB07jFDST9gby/NKRmxzFxeyISrDb7bdMOh74zSi38q/bk4IqVHgvJgsMwwp2QusgwKY6TLwworJ3tKhgZuJUTMgmYRLdon+Hqk9z10BitGCMQ/5RUt8TuVHd+ydiEhj7S+30SYQRhoqqfd0wM0OJLNQcaeI1UeXwfySbBlJmo1SY4ThgbEShgNlRZj0LWONCMaxm9lHkeuMzDWH3lTOx6rhhhSTFhui0BmRHh/T3tyFhuRDvrTCgjHKFQ2U2NdATEtNCBrsVyxtF3obum7zCBC1AYnfVCwSmSqWuqhMwtm10dvJr71Zk5UMpqNaS9I0mf5oncTQ+rO3Dl2nGoBUaw9WfCg95Q1e3Rn1itwkULRwup+ckrkp0+wnLY4zi8NZYlG5gUnyBqCL956UcuMPrP5MESYqpiGK+KqxY+IjysYWjUOGBFO0YU644HFh5WDvMYLgTUJOgJTGDGEMnFZwzji/LAAi63iczLE7+Tjw==--bNGVobWtteua3hyN--xHVdPigQVBB/6vxV7q3TRw==
|
||||
Reference in New Issue
Block a user