Skip to content

Commit 82146b7

Browse files
1006328 - Updated folder/file names
1 parent 2494290 commit 82146b7

9 files changed

Lines changed: 25 additions & 43 deletions

File tree

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/ej2_crud.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/crud_handler.py

File renamed without changes.

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/datamanager/__init__.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/data_handler/__init__.py

File renamed without changes.

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/datamanager/engine.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/data_handler/engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from .sorting import apply_sorting
1111

1212

13-
class DataManagerEngine:
13+
class DataHanlerEngine:
1414
"""
1515
Single-pass DataManager engine that handles:
1616
- search -> where -> sorting

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/datamanager/filters.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/data_handler/filters.py

File renamed without changes.

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/datamanager/parsing.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/data_handler/parsing.py

File renamed without changes.

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/datamanager/search.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/data_handler/search.py

File renamed without changes.

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/datamanager/select.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/data_handler/select.py

File renamed without changes.

Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/datamanager/sorting.py renamed to Binding MS SQL database using Django and UrlAdaptor/Grid_DRF_MSSQL/django_server/library/services/data_handler/sorting.py

File renamed without changes.
Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
21
# views.py
3-
from django.db import transaction
42
from rest_framework import viewsets, status
53
from rest_framework.response import Response
64

75
from .models import BookLending
86
from .serializers import BookLendingSerializer
9-
from .services.datamanager.engine import DataManagerEngine
10-
from .services.ej2_crud import handle_crud_action
7+
from .services.data_handler.engine import DataHanlerEngine
8+
from .services.crud_handler import handle_crud_action
119

1210

1311
class BookLendingViewSet(viewsets.ModelViewSet):
@@ -21,7 +19,10 @@ class BookLendingViewSet(viewsets.ModelViewSet):
2119
queryset = BookLending.objects.all()
2220
serializer_class = BookLendingSerializer
2321

24-
dm_engine = DataManagerEngine()
22+
# Allow only POST on the endpoint (blocks GET/PUT/PATCH/DELETE)
23+
http_method_names = ["post"]
24+
25+
dm_engine = DataHanlerEngine()
2526

2627
def create(self, request, *args, **kwargs):
2728
payload = request.data
@@ -32,49 +33,30 @@ def create(self, request, *args, **kwargs):
3233

3334
if mode == "values":
3435
# select-mode returns list[dict] (already projected)
35-
response_payload = {'result': data, 'count': total_count} if requires_counts else data
36-
return Response(response_payload, status=status.HTTP_200_OK)
36+
return Response(
37+
{'result': data, 'count': total_count} if requires_counts else data,
38+
status=status.HTTP_200_OK
39+
)
3740

3841
# rows-mode: serialize model instances
3942
serialized = self.get_serializer(data, many=True).data
40-
response_payload = {'result': serialized, 'count': total_count} if requires_counts else serialized
41-
return Response(response_payload, status=status.HTTP_200_OK)
43+
return Response(
44+
{'result': serialized, 'count': total_count} if requires_counts else serialized,
45+
status=status.HTTP_200_OK
46+
)
4247

4348
# 2) UrlAdaptor CRUD actions via POST
4449
crud_response = handle_crud_action(self, payload)
4550
if crud_response is not None:
4651
return crud_response
4752

48-
# 3) Fallback: standard RESTful create
49-
serializer = self.get_serializer(data=payload)
50-
serializer.is_valid(raise_exception=True)
51-
with transaction.atomic():
52-
self.perform_create(serializer)
53-
instance = serializer.instance
54-
if instance is not None:
55-
instance.refresh_from_db()
56-
output_data = self.get_serializer(instance).data
57-
headers = self.get_success_headers(serializer.data)
58-
return Response(output_data, status=status.HTTP_201_CREATED, headers=headers)
59-
60-
def update(self, request, *args, **kwargs):
61-
partial = kwargs.pop('partial', False)
62-
instance = self.get_object()
63-
serializer = self.get_serializer(instance, data=request.data, partial=partial)
64-
serializer.is_valid(raise_exception=True)
65-
with transaction.atomic():
66-
self.perform_update(serializer)
67-
instance.refresh_from_db()
68-
output_data = self.get_serializer(instance).data
69-
return Response(output_data, status=status.HTTP_200_OK)
70-
71-
def partial_update(self, request, *args, **kwargs):
72-
kwargs['partial'] = True
73-
return self.update(request, *args, **kwargs)
74-
75-
def destroy(self, request, *args, **kwargs):
76-
instance = self.get_object()
77-
deleted_payload = self.get_serializer(instance).data # capture before deletion
78-
with transaction.atomic():
79-
self.perform_destroy(instance)
80-
return Response(deleted_payload, status=status.HTTP_200_OK)
53+
# 3) Unsupported payload
54+
return Response(
55+
{
56+
"detail": (
57+
"Unsupported POST payload. Expected Syncfusion DataManager read payload "
58+
"or UrlAdaptor CRUD action ('insert' | 'update' | 'remove')."
59+
)
60+
},
61+
status=status.HTTP_400_BAD_REQUEST
62+
)

0 commit comments

Comments
 (0)