diff --git a/src/__pycache__/server.cpython-310.pyc b/src/__pycache__/server.cpython-310.pyc index 22ab8e3..66b0a0b 100644 Binary files a/src/__pycache__/server.cpython-310.pyc and b/src/__pycache__/server.cpython-310.pyc differ diff --git a/src/server.py b/src/server.py index 0811aae..3cb25cb 100644 --- a/src/server.py +++ b/src/server.py @@ -1,11 +1,35 @@ from http.server import BaseHTTPRequestHandler, HTTPServer import json +import urllib.request + def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler): server_address = ("", 8000) httpd = server_class(server_address, WeatherHandler) httpd.serve_forever() + class WeatherHandler(BaseHTTPRequestHandler): def do_GET(self): - return self.render(404) \ No newline at end of file + return self.weather_handler() + + def weather_handler(self): + coordinates = [48.712, 44.514] + url = ( + "https://api.open-meteo.com/v1/forecast?latitude=" + + str(coordinates[0]) + + "&longitude=" + + str(coordinates[1]) + + "¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m" + ) + raw_data = urllib.request.urlopen(url).read() + print(raw_data) + return self.render(200, raw_data) + + def render(self, response_code: int, response_body: dict | None = None): + self.send_response(response_code) + if response_body is not None: + self.send_header("Content-type", "application/json") + self.end_headers() + if response_body is not None: + self.wfile.write(response_body)