Skip to content

Commit

Permalink
feat: 특정 자소서 받아오는 api
Browse files Browse the repository at this point in the history
  • Loading branch information
yjoonjang committed Apr 10, 2024
1 parent d0e194e commit c212726
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 33 deletions.
2 changes: 1 addition & 1 deletion memos/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
urlpatterns = [
path("", views.PostMemoView.as_view(), name="post_memo"),
path("all", views.GetAllMemoView.as_view(), name="get_all_memos"),
path("memo/<int:pk>", views.GetMemoDetailView.as_view(), name="memo-detail"),
path("<int:pk>", views.GetMemoDetailView.as_view(), name="memo-detail"),
path("update/<int:pk>", views.UpdateMemoView.as_view(), name="scrap-memo"),
path("delete/<int:pk>", views.DeleteMemoView.as_view(), name="delete-memo"),
path("search", views.SearchMemoView.as_view(), name="search-memo"),
Expand Down
3 changes: 2 additions & 1 deletion resume/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
path("all", views.GetAllResumeView.as_view(), name="get_all_resume"),
path("guidelines", views.GetGuidelinesView.as_view(), name="get_guidelines"),
path("generate", views.GenerateResumeView.as_view(), name="generate_resume"),
path("", views.PostResumeView.as_view(), name="post_resume"),
# path("", views.PostResumeView.as_view(), name="post_resume"),
path("update/<int:id>", views.UpdateResumeView.as_view(), name="update_resume"),
path("scrap/<int:id>", views.ScrapResumeView.as_view(), name="scrap_resume"),
path("chat", views.ChatView.as_view(), name="chat"),
path("<int:pk>", views.GetResumeView.as_view(), name="update_resume"),
]
87 changes: 56 additions & 31 deletions resume/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,51 +216,75 @@ def post(self, request):
# 데이터 유효성 검사
if serializer.is_valid():
# 유효한 데이터의 경우, 자소서 저장
serializer.save(
saved_instance = serializer.save(
user=request.user
) # 현재 로그인한 사용자를 자소서의 user 필드에 저장
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response({"id": saved_instance.id}, status=status.HTTP_201_CREATED)
else:
# 데이터가 유효하지 않은 경우, 에러 메시지 반환
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


class PostResumeView(APIView):
# class PostResumeView(APIView):
# permission_classes = [IsAuthenticated]
#
# @extend_schema(
# summary="자기소개서 등록",
# description="자기소개서를 등록합니다.",
# responses={200: PostResumeSerializer},
# request={
# "application/json": {
# "type": "object",
# "properties": {
# "title": {"type": "string"},
# "position": {"type": "string"},
# "content": {"type": "string"},
# "due_date": {"type": "string"},
# },
# },
# },
# )
# def post(self, request):
# serializer = PostResumeSerializer(data=request.data)
#
# # 데이터 유효성 검사
# if serializer.is_valid():
# # 유효한 데이터의 경우, 자소서 저장
# serializer.save(
# user=request.user
# ) # 현재 로그인한 사용자를 메모의 user 필드에 저장
# return Response(serializer.data, status=status.HTTP_201_CREATED)
# else:
# # 데이터가 유효하지 않은 경우, 에러 메시지 반환
# return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

class GetResumeView(APIView):
permission_classes = [IsAuthenticated]

def get_object(self, pk, user):
try:
resume = Resume.objects.get(pk=pk)
# 메모를 작성한 유저와 현재 요청 유저가 동일한지 확인
if resume.user != user:
raise Http404("해당 메모에 접근할 권한이 없습니다.")
return resume
except resume.DoesNotExist:
raise Http404

@extend_schema(
summary="자기소개서 등록",
description="자기소개서를 등록합니다.",
summary="특정 자소서를 받아옵니다.",
description="사용자가 작성한 특정 자소서의 디테일을 받아옵니다.",
responses={200: PostResumeSerializer},
request={
"application/json": {
"type": "object",
"properties": {
"title": {"type": "string"},
"position": {"type": "string"},
"content": {"type": "string"},
"due_date": {"type": "string"},
},
},
},
)
def post(self, request):
serializer = PostResumeSerializer(data=request.data)

# 데이터 유효성 검사
if serializer.is_valid():
# 유효한 데이터의 경우, 자소서 저장
serializer.save(
user=request.user
) # 현재 로그인한 사용자를 메모의 user 필드에 저장
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
# 데이터가 유효하지 않은 경우, 에러 메시지 반환
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request, pk, format=None):
print(pk)
resume = self.get_object(pk, request.user)
serializer = PostResumeSerializer(resume)
return Response(serializer.data, status=status.HTTP_200_OK)


class UpdateResumeView(APIView):
permission_classes = [IsAuthenticated] # 인증된 사용자만 접근 가능하도록 설정
permission_classes = [IsAuthenticated]

@extend_schema(
summary="자기소개서 업데이트",
Expand Down Expand Up @@ -342,4 +366,5 @@ def post(self, request):
return JsonResponse(
{"answer": chatbot_answer},
status=status.HTTP_200_OK,
)
)

0 comments on commit c212726

Please sign in to comment.