You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.2 KiB
30 lines
1.2 KiB
from django.http import JsonResponse
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
import json
|
|
import requests
|
|
|
|
@csrf_exempt
|
|
def generate_path(request):
|
|
if request.method == 'POST':
|
|
try:
|
|
data = json.loads(request.body)
|
|
if 'points' not in data or not isinstance(data['points'], list) or len(data['points']) != 2:
|
|
return JsonResponse({'error': 'Invalid input data. "points" must be an array of two objects with x and y.'}, status=400)
|
|
|
|
response = requests.post(
|
|
'http://localhost:82/generatePath',
|
|
json=data
|
|
)
|
|
|
|
if response.status_code == 200:
|
|
return JsonResponse(response.json(), safe=False)
|
|
else:
|
|
return JsonResponse({'error': 'Failed to generate path', 'details': response.text}, status=response.status_code)
|
|
|
|
except json.JSONDecodeError:
|
|
return JsonResponse({'error': 'Invalid JSON format'}, status=400)
|
|
except Exception as e:
|
|
return JsonResponse({'error': 'An unexpected error occurred', 'details': str(e)}, status=500)
|
|
|
|
return JsonResponse({'error': 'Only POST method is allowed'}, status=405)
|