48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
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})
|