Final_Assignment_Template / src /rest_clients /open_weather_client.py
tommaso1288's picture
First commit - code refactoring
cdf8921
raw
history blame contribute delete
997 Bytes
import os
import requests
from dotenv import load_dotenv
class OpenWeatherClient:
def __init__(self):
load_dotenv()
self.api_key = os.getenv("OPEN_WEATHER_TOKEN")
self.base_url = "http://api.openweathermap.org/data/2.5/weather"
def get_weather(self, location: str):
params = {
"q": location,
"appid": self.api_key,
"units": "metric"
}
try:
response = requests.get(self.base_url, params=params)
response.raise_for_status()
weather_data = response.json()
condition = weather_data["weather"][0]["description"]
temp_c = weather_data["main"]["temp"]
return {
"location": location,
"condition": condition.capitalize(),
"temperature": f"{temp_c}°C"
}
except requests.exceptions.RequestException as e:
return {"error": f"Failed to fetch weather data: {e}"}