dorixona uchun apilar qoshildi

This commit is contained in:
behruz-dev
2025-11-24 15:25:54 +05:00
parent c0c467b60e
commit b97cbd5786
3 changed files with 63 additions and 7 deletions

View File

@@ -22,8 +22,8 @@ class PharmacySerializer(serializers.ModelSerializer):
def get_district(self, obj):
return {
'id': obj.distrcit.id,
'name': obj.distrcit.name,
'id': obj.district.id,
'name': obj.district.name,
}
def get_place(self, obj):
@@ -42,7 +42,7 @@ class PharmacyCreateSerializer(serializers.Serializer):
place_id = serializers.IntegerField()
longitude = serializers.FloatField()
latitude = serializers.FloatField()
extra_location = serializers.FloatField()
extra_location = serializers.JSONField()
def validate(self, data):
district = District.objects.filter(id=data['district_id']).first()
@@ -52,7 +52,7 @@ class PharmacyCreateSerializer(serializers.Serializer):
if not place:
raise serializers.ValidationError({'place_id': "Place topilmadi"})
data['distirct'] = district
data['district'] = district
data['place'] = place
return data
@@ -62,10 +62,11 @@ class PharmacyCreateSerializer(serializers.Serializer):
name=validated_data.get('name'),
inn=validated_data.get('inn'),
owner_phone=validated_data.get('owner_phone'),
responsibele_phone=validated_data.get('responsible_phone'),
responsible_phone=validated_data.get('responsible_phone'),
district=validated_data.get('district'),
place=validated_data.get('place'),
longitude=validated_data.get('longitude'),
latitude=validated_data.get('latitude'),
extra_location=validated_data.get('extra_location'),
user=self.context.get('user'),
)

View File

@@ -8,7 +8,8 @@ from core.apps.shared.views import district as dis_view
from core.apps.shared.views import place as pl_view
# shared doctor view
from core.apps.shared.views import doctor as dc_view
# shared pharmacy view
from core.apps.shared.views import pharmacy as ph_view
urlpatterns = [
# region
@@ -41,4 +42,10 @@ urlpatterns = [
path('<int:id>/', dc_view.DoctorDeleteUpdateApiView.as_view(), name='doctor-update-delete-api'),
]
)),
path('pharmacy/', include(
[
path('list/', ph_view.PharmacyListApiView.as_view(), name='pharmacy-list-api'),
path('create/', ph_view.PharmacyCreateApiView.as_view(), name='pharmacy-create-api'),
]
)),
]

View File

@@ -5,4 +5,52 @@ from rest_framework import generics, permissions
from drf_yasg.utils import swagger_auto_schema
# shared
from core.apps.shared.models import Pharmacy
from core.apps.shared.models import Pharmacy
from core.apps.shared.utils.response_mixin import ResponseMixin
from core.apps.shared.serializers.base import SuccessResponseSerializer, BaseResponseSerializer
from core.apps.shared.serializers.pharmacy import PharmacyCreateSerializer, PharmacySerializer
class PharmacyListApiView(generics.GenericAPIView, ResponseMixin):
serializer_class = PharmacySerializer
queryset = Pharmacy.objects.all()
permission_classes = [permissions.IsAuthenticated]
@swagger_auto_schema(
responses={
200: SuccessResponseSerializer(data_serializer=PharmacySerializer()),
400: BaseResponseSerializer(),
500: BaseResponseSerializer()
}
)
def get(self, request):
try:
queryset = self.queryset.filter(user=request.user)
serializer = self.serializer_class(queryset, many=True)
return self.success_response(data=serializer.data, message='malumotlar fetch qilindi')
except Exception as e:
return self.error_response(data=str(e), message='xatolik')
class PharmacyCreateApiView(generics.GenericAPIView, ResponseMixin):
serializer_class = PharmacyCreateSerializer
queryset = Pharmacy.objects.all()
permission_classes = [permissions.IsAuthenticated]
@swagger_auto_schema(
responses={
201: SuccessResponseSerializer(data_serializer=PharmacySerializer()),
400: BaseResponseSerializer(),
500: BaseResponseSerializer()
}
)
def post(self, request):
try:
serializer = self.serializer_class(data=request.data, context={'user': request.user})
if serializer.is_valid():
obj = serializer.save()
created_data = PharmacySerializer(obj).data
return self.success_response(data=created_data, message='malumot qoshildi', status_code=201)
return self.failure_response(data=serializer.errors, message='malumot qoshilmadi')
except Exception as e:
return self.error_response(data=str(e), message='xatolik')