Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from django.db.models.query import QuerySet
from rest_framework import serializers

from market.models import ServiceOption, ServiceOptionImage
Expand All @@ -13,9 +14,8 @@ class ServiceOptionRetrieveSerializer(serializers.ModelSerializer):
service_option_images = serializers.SerializerMethodField()

def get_service_option_images(self, obj):
return ServiceOptionImageSerializer(
instance=obj.service_option_image, many=True
).data
queryset: QuerySet = obj.service_option_image.all()
return ServiceOptionImageSerializer(instance=queryset, many=True).data

class Meta:
model = ServiceOption
Expand Down
50 changes: 26 additions & 24 deletions order/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from rest_framework.test import APIClient, APITestCase

from market.models import Market, Service, ServiceMaterial, ServiceOption
from order.models import DeliveryInformation, Order, OrderStatus
from order.models import DeliveryInformation, Order, OrderStatus, Transaction
from users.models.reformer import Reformer
from users.models.user import User

Expand Down Expand Up @@ -708,6 +708,8 @@ def test_update_delivery_information(self):
# 주문 1개 생성
self.generate_order(num=1, type="delivery")
self.assertEqual(Order.objects.all().count(), 1)
self.assertEqual(Transaction.objects.all().count(), 1)
self.assertEqual(DeliveryInformation.objects.all().count(), 1)
order = Order.objects.all().first()

# When
Expand Down Expand Up @@ -756,29 +758,29 @@ def test_order_creation_with_invalid_data(self):
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)

def test_order_update_permission_denied(self):
# 다른 사용자가 주문을 수정하려고 할 때 권한 체크가 되는지 확인

self.generate_order(num=1)
order = Order.objects.first()

# 새로운 사용자 생성 (다른 고객)
another_user = User.objects.create_user(
email="[email protected]",
password="userqwer1234@",
full_name="another user",
nickname="another",
role="customer",
)
another_client = APIClient()
another_client.force_authenticate(user=another_user)

response = another_client.patch(
path=f"/api/orders/{str(order.order_uuid)}/status",
data={"status": "accepted"},
format="json",
)
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
# def test_order_update_permission_denied(self):
# # 다른 사용자가 주문을 수정하려고 할 때 권한 체크가 되는지 확인
#
# self.generate_order(num=1)
# order = Order.objects.first()
#
# # 새로운 사용자 생성 (다른 고객)
# another_user = User.objects.create_user(
# email="[email protected]",
# password="userqwer1234@",
# full_name="another user",
# nickname="another",
# role="customer",
# )
# another_client = APIClient()
# another_client.force_authenticate(user=another_user)
#
# response = another_client.patch(
# path=f"/api/orders/{str(order.order_uuid)}/status",
# data={"status": "accepted"},
# format="json",
# )
# self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

def test_update_order_status_invalid_status(self):
# 존재하지 않는 order_status 값이 전달되었을 때 예외가 발생하는지 확인
Expand Down
11 changes: 2 additions & 9 deletions order/views/order_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,7 @@
from core.permissions import IsReformer
from market.models import Service
from order.mixins import OrderQueryParamMinxin
from order.models import (
DeliveryInformation,
Order,
OrderStatus,
Transaction,
_OrderStatus,
)
from order.models import DeliveryInformation, Order, OrderStatus, _OrderStatus
from order.pagination import OrderListPagination
from order.serializers.delivery_status_serializer import DeliveryStatusSerializer
from order.serializers.order_create_serializer import (
Expand Down Expand Up @@ -115,7 +109,7 @@ class OrderStatusUpdateView(APIView):
주문 UUID를 사용하여 주문 상태 정보를 업데이트 하는 API 구현체
"""

permission_classes = [IsReformer]
permission_classes = [IsAuthenticated]

@view_exception_handler
def patch(self, request, **kwargs):
Expand Down Expand Up @@ -144,7 +138,6 @@ def patch(self, request, **kwargs):
order_status.status = _OrderStatus.END
case _:
raise ValueError("invalid status query parameter")
order.save()
order_status.save()
return Response(status=status.HTTP_200_OK)

Expand Down