from django.http import HttpRequest, HttpResponse from django.shortcuts import render from engine import encode, decode, format_location, parse_location def hello_world(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/hello_world.html', { "content": "hi!", }) def landing_page(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/landing_page.html', {}) def encode_view(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/encode.html', {}) def encode_result_view(request: HttpRequest) -> HttpResponse: lat, lon = request.GET.get('lat', None), request.GET.get('lon', None) if lat is None or lon is None: # TODO: do some nice error display return render(request, 'websiteapp/encode_result.html', {"result": "error"}) result = encode((float(lat), float(lon))) result_str = format_location(result) return render(request, 'websiteapp/encode_result.html', {"result": result_str}) def decode_view(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/decode.html', {}) def decode_result_view(request: HttpRequest) -> HttpResponse: loc_str = request.GET.get('loc', None) if loc_str is None: # TODO: do some nice error display result = "error" lat, lon = 0, 0 else: try: loc = parse_location(loc_str) (lat, lon) = decode(loc) result = f"{lat},{lon}" except ValueError: result = "ERROR - invalid greggordinate!" lat, lon = 0, 0 return render(request, 'websiteapp/decode_result.html', {"result": result, "lat": lat, "lon": lon})