bx-865-apps #1

Merged
ksenia_mikhailova merged 140 commits from bx-865-apps into main 2024-06-27 15:03:27 +03:00
5 changed files with 50 additions and 8 deletions
Showing only changes of commit d040f05fba - Show all commits

View File

@ -1678,6 +1678,14 @@
"detail": "rest_framework", "detail": "rest_framework",
"documentation": {} "documentation": {}
}, },
{
"label": "status",
"importPath": "rest_framework",
"description": "rest_framework",
"isExtraImport": true,
"detail": "rest_framework",
"documentation": {}
},
{ {
"label": "TestCase", "label": "TestCase",
"importPath": "django.test", "importPath": "django.test",
@ -1745,6 +1753,14 @@
"detail": "django.http", "detail": "django.http",
"documentation": {} "documentation": {}
}, },
{
"label": "get_object_or_404",
"importPath": "django.shortcuts",
"description": "django.shortcuts",
"isExtraImport": true,
"detail": "django.shortcuts",
"documentation": {}
},
{ {
"label": "parse_image", "label": "parse_image",
"importPath": "api.tracer", "importPath": "api.tracer",
@ -8516,7 +8532,7 @@
"kind": 6, "kind": 6,
"importPath": "back.api.views", "importPath": "back.api.views",
"description": "back.api.views", "description": "back.api.views",
"peekOfCode": "class FloorplanPointsView(APIView):\n def get(self, request, id):\n if FloorplanPoints.objects.filter(plan=id).exists():\n points = FloorplanPoints.objects.get(plan=id)\n serializer = FloorplanPointsSerializer(points, many=False)\n return JsonResponse(serializer.data, safe=False)\n else:\n return JsonResponse(\"No item\", status=400)\n def post(self, request, id):\n data = JSONParser().parse(request)", "peekOfCode": "class FloorplanPointsView(APIView):\n def get(self, request, id):\n if FloorplanPoints.objects.filter(plan=id).exists():\n points = FloorplanPoints.objects.get(plan=id)\n serializer = FloorplanPointsSerializer(points, many=False)\n return JsonResponse(serializer.data, safe=False)\n else:\n return JsonResponse(\n \"No item\", safe=False, status=status.HTTP_400_BAD_REQUEST\n )",
"detail": "back.api.views", "detail": "back.api.views",
"documentation": {} "documentation": {}
}, },

View File

@ -87,7 +87,7 @@ const sampling_data = async () => {
.attr('class', _class) .attr('class', _class)
.on('click', clickFunk) .on('click', clickFunk)
} }
if (i % 10 == 0) { if (i % 200 == 0) {
await nextFrame() await nextFrame()
} }
}; };

View File

@ -34,11 +34,16 @@ const dataToState = async (data: any) => {
try { try {
const res = await fetch(`${config.public.apiBase}/api/floorplan/${data.id}/points`) const res = await fetch(`${config.public.apiBase}/api/floorplan/${data.id}/points`)
if (res.status !== 200) {
throw new Error()
}
const points = await res.json() const points = await res.json()
target_points.value = points.points target_points.value = points.points
target_array.value = points.points target_array.value = points.points
} catch (error) { } catch (error) {
console.log(error) console.log(error)
target_points.value = []
target_array.value = []
} }
} }
@ -54,6 +59,9 @@ const selectFileEvent = async () => {
loadingFile.value = true loadingFile.value = true
try { try {
const res = await fetch(`${config.public.apiBase}/api/floorplan/${selectFile.value}`) const res = await fetch(`${config.public.apiBase}/api/floorplan/${selectFile.value}`)
if (res.status !== 200) {
throw new Error()
}
const data = await res.json() const data = await res.json()
await dataToState(data) await dataToState(data)
} catch (error) { } catch (error) {
@ -66,6 +74,9 @@ const loadFiles = async () => {
try { try {
loadingFile.value = true loadingFile.value = true
const res = await fetch(`${config.public.apiBase}/api/floorplan/`) const res = await fetch(`${config.public.apiBase}/api/floorplan/`)
if (res.status !== 200) {
throw new Error()
}
const data = await res.json() const data = await res.json()
files.value = data files.value = data
} catch (error) { } catch (error) {

View File

@ -1,9 +1,13 @@
import json import json
from rest_framework.parsers import JSONParser, MultiPartParser from rest_framework.parsers import JSONParser, MultiPartParser
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework import status
from django.http import JsonResponse from django.http import JsonResponse
from django.shortcuts import get_object_or_404
from api.tracer import parse_image, read_image, numpy_zip_str_to_arr from api.tracer import parse_image, read_image, numpy_zip_str_to_arr
from .serializers import ( from .serializers import (
FloorplanListSerializer, FloorplanListSerializer,
FloorplanPointsSerializer, FloorplanPointsSerializer,
@ -66,7 +70,7 @@ class FloorplanView(APIView):
) )
else: else:
logger.info(serializer.errors) logger.info(serializer.errors)
return JsonResponse(serializer.errors, status=500) return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
raise e raise e
@ -94,11 +98,14 @@ class FloorplanView(APIView):
serializer = FloorplanSerializer(item, data=request.data, partial=True) serializer = FloorplanSerializer(item, data=request.data, partial=True)
if serializer.is_valid(): if serializer.is_valid():
serializer.save() serializer.save()
return JsonResponse(serializer.data, status=201) return JsonResponse(serializer.data, status=status.HTTP_200_OK)
else: else:
logger.info(serializer.errors) logger.info(serializer.errors)
return JsonResponse(
serializer.errors, status=status.HTTP_400_BAD_REQUEST
)
else: else:
return JsonResponse("No item", status=400) return JsonResponse("No item", status=status.HTTP_400_BAD_REQUEST)
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
raise e raise e
@ -111,12 +118,17 @@ class FloorplanPointsView(APIView):
serializer = FloorplanPointsSerializer(points, many=False) serializer = FloorplanPointsSerializer(points, many=False)
return JsonResponse(serializer.data, safe=False) return JsonResponse(serializer.data, safe=False)
else: else:
return JsonResponse("No item", status=400) return JsonResponse(
"No item", safe=False, status=status.HTTP_400_BAD_REQUEST
)
def post(self, request, id): def post(self, request, id):
data = JSONParser().parse(request) data = JSONParser().parse(request)
data["plan"] = id data["plan"] = id
serializer = FloorplanPointsSerializer(data=data) floorplapoints_object = get_object_or_404(FloorplanPoints, plan=id)
serializer = FloorplanPointsSerializer(floorplapoints_object, data=data, partial=True)
if serializer.is_valid(): if serializer.is_valid():
serializer.save() serializer.save()
return JsonResponse(serializer.data, status=201) return JsonResponse(serializer.data, status=status.HTTP_201_CREATED)
else:
return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

3
dev.sh Executable file
View File

@ -0,0 +1,3 @@
poetry run task admin_front_dev &
poetry run task front_dev &
poetry run task server