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
4 changes: 2 additions & 2 deletions config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@

# simple jwt setting
SIMPLE_JWT = {
"ACCESS_TOKEN_LIFETIME": timedelta(hours=5), # 토큰 유효시간 설정 1시간으로 설정
"ACCESS_TOKEN_LIFETIME": timedelta(days=5), # 토큰 유효기간 5일로 설정
"REFRESH_TOKEN_LIFETIME": timedelta(days=30), # 리프레시 토큰 유효기간 설정 리프레시 토큰 유효기간은 5일로 설정
"ROTATE_REFRESH_TOKENS": True, # 리프레시 토큰도 같이 반환됩니다.
"BLACKLIST_AFTER_ROTATION": True, # 이전 토큰 블랙리스트 적용, 사용시 설치앱에 rest_framework_simplejwt.token_blacklist 추가 필요
Expand All @@ -246,7 +246,7 @@
"SIGNING_KEY": SECRET_KEY, # 장고 자체의 시크릿 키로 signing key 지정
"VERIFYING_KEY": "",
"AUDIENCE": None,
"ISSUER": None, # 토큰 발급자 명시
"ISSUER": "Conever", # 토큰 발급자 명시
"JSON_ENCODER": None,
"JWK_URL": None,
"LEEWAY": 0,
Expand Down
6 changes: 5 additions & 1 deletion mission/urls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from django.urls import path
from .views import MissionListView, MissionImageUploadView, RandomMissionCreateView, MissionCheckCompleteView, IsMissionCompleteView, MissionImageGetView, SaveMissionCompleteView
from .views import MissionListView, MissionImageUploadView, RandomMissionCreateView, MissionCheckCompleteView, \
IsMissionCompleteView, MissionImageGetView, SaveMissionCompleteView, DeleteMissionImageView

urlpatterns = [
path('list/', MissionListView.as_view({
Expand All @@ -24,5 +25,8 @@
})),
path('save_mission_complete/', SaveMissionCompleteView.as_view({
'post': 'create',
})),
path('delete_mission_image/', DeleteMissionImageView.as_view({
'patch': 'partial_update',
}))
]
13 changes: 12 additions & 1 deletion mission/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,4 +241,15 @@ def create(self, request, *args, **kwargs):
return Response({
"tdp_id": tdp_id,
"is_success": tdp.mission_success,
}, status=status.HTTP_201_CREATED)
}, status=status.HTTP_201_CREATED)

class DeleteMissionImageView(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]
def partial_update(self, request, *args, **kwargs):
tdp_id = request.data.get('tdp_id', None)
if tdp_id is None: raise NoRequiredParameterException()
# 이미 백에서 삭제 작업 진행했을 수도 있음
tdp = TravelDaysAndPlaces.objects.get(id=int(tdp_id))
if tdp.mission_image is not None and tdp.mission_image != "":
tdp.mission_image.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
9 changes: 9 additions & 0 deletions tour/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ class Meta:
model = Place
fields = '__all__'

def to_representation(self, instance):
data = super().to_representation(instance)
try:
tdp = TravelDaysAndPlaces.objects.get(place_id=instance.id)
data['tdp_id'] = tdp.id
except TravelDaysAndPlaces.DoesNotExist:
pass
return data

class TravelDaysAndPlacesSerializer(serializers.ModelSerializer):
# place = PlaceSerializer() # 장소 정보는 시리얼라이저를 통해 반환합니다.

Expand Down