Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat #25 - 유치원 요약 정보 조회 API 구현 #26

Merged

Conversation

DongwookKim0823
Copy link
Member

PR 체크리스트

아래 항목을 확인해 주세요:

  • 커밋 메시지가 우리의 가이드라인을 따르고 있는지 확인하세요
  • 변경 사항에 대한 테스트가 추가되었는지 확인하세요 (버그 수정 / 기능 추가)
  • 문서가 추가되거나 업데이트되었는지 확인하세요 (버그 수정 / 기능 추가)

PR 유형

이 PR은 어떤 종류의 변경을 가져오나요?

  • 버그 수정
  • 새로운 기능 추가
  • 기능 변경/삭제
  • 코드 스타일 업데이트 (서식, 로컬 변수)
  • 리팩터링 (기능 변경 없음, API 변경 없음)
  • 빌드 관련 변경
  • CI 관련 변경
  • 문서 내용 변경
  • 애플리케이션 / 인프라 변경
  • 기타... 설명:

관련 이슈

이슈 번호: #25

어떤 동작은 무엇인가요?

  • 메인 화면의 상단에 위치한 유치원 요약 정보 조회

기타 정보

@DongwookKim0823 DongwookKim0823 added the ✨ Feature 기능 개발(API, 모듈 등) label Jul 2, 2024
@DongwookKim0823 DongwookKim0823 self-assigned this Jul 2, 2024
Copy link
Member

@JaeHyuckSa JaeHyuckSa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 :)

mung_manager/pet_kindergardens/apis/apis.py Outdated Show resolved Hide resolved
mung_manager/pet_kindergardens/selectors/abstracts.py Outdated Show resolved Hide resolved
@JaeHyuckSa
Copy link
Member

아까 회의 때 타입때문에 쿼리를 바꾸는 것은 또 아닐 것 같긴합니다. 이건 제 잘못된 생각같네요.
타입에 대해서 찾아봤을 때 해결방법으로 아래 링크를 참고할 수 있습니다.

https://stackoverflow.com/questions/60271481/django-mypy-valuesqueryset-type-hint

ValuesQuerySet의 경우 django 1.9 릴리즈 때 삭제가 되어 django_stubs_ext를 import해서 사용해야합니다.
하지만 메인테이너가 아직 예정에는 없지만 ValuesQuerySet를 삭제한다고 하네요.
ValuesQuerySet[MyModel, int] 이렇게 사용할 수 있는 것을 QuerySet[MyModel, int] 이런식으로요
현재 QuerySet은 하나의 인자값만 받게 되어있습니다. 만약 삭제된다면 추후 업데이트 후 ValuesQuerySetQuerySet로 전부 바꾸면 될 것 같습니다.

참고 링크

TypedDict 사용법

https://mypy.readthedocs.io/en/stable/typed_dict.html

ValuesQuerySet 내용

https://github.com/django/django/blob/aed89adad54a977829c4f180b036033e031ebcc7/docs/releases/1.9.txt#L1069
typeddjango/django-stubs#144
typeddjango/django-stubs#2194

아래는 프로젝트 코드 적용 예시입니다.

from typing import TypedDict
from datetime import time

from django_stubs_ext.aliases import ValuesQuerySet

summery_info = TypedDict(
    "summery_info", {"id": int, "name": str, "business_start_hour": time, "business_end_hour": time}
)

def get_by_pet_kindergarden_id_for_summary_info(
    self, pet_kindergarden_id: int
) -> ValuesQuerySet[PetKindergarden, summery_info]:
    """
    이 함수는 반려동물 유치원 아이디로 해당 반려동물 유치원의 요약 정보를 조회합니다.
    Args:
        pet_kindergarden_id (int): 반려동물 유치원 아이디
    Returns:
        Optional[Any]: 반려동물 유치원이 존재하지 않으면 None을 반환
    """

    return PetKindergarden.objects.filter(id=pet_kindergarden_id).values(
        "id", "name", "business_start_hour", "business_end_hour"
    )

JaeHyuckSa
JaeHyuckSa approved these changes Jul 3, 2024
@JaeHyuckSa JaeHyuckSa self-requested a review July 3, 2024 08:28
@JaeHyuckSa JaeHyuckSa self-requested a review July 3, 2024 08:36
@DongwookKim0823 DongwookKim0823 merged commit b10b8cd into develop Jul 3, 2024
1 check passed
@DongwookKim0823 DongwookKim0823 deleted the feature/issue-025/pet-kindergarden-summary-info branch July 3, 2024 09:31
DongwookKim0823 added a commit that referenced this pull request Jul 5, 2024
- 유치원 요약 정보 조회 기능 구현
- PetKindergardenSelector 클래스의 get_queryset_by_user 메서드 반환 타입 수정

Close #25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 기능 개발(API, 모듈 등)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants