Skip to content

[Feat/hatch&runimo] 부화 api 일부, 보유 러니모 조회 및 대표 러니모 설정 api 구현#26

Merged
ekgns33 merged 38 commits intomainfrom
feat/hatch-logic
Apr 6, 2025
Merged

[Feat/hatch&runimo] 부화 api 일부, 보유 러니모 조회 및 대표 러니모 설정 api 구현#26
ekgns33 merged 38 commits intomainfrom
feat/hatch-logic

Conversation

@jeeheaG
Copy link
Copy Markdown
Contributor

@jeeheaG jeeheaG commented Apr 4, 2025

[작업내용]

  • 부화 api 일부 구현
  • 보유 러니모 조회 api 구현
  • 대표 러니모 설정 api 구현

[미구현 사항]

  1. 러니모 중복 확인 로직은 아직입니다. -> 추가 완료!
  2. 러니모 뽑기 로직은 아직입니다. 부화 시 지금은 하드코딩된 러니모 더미데이터를 반환합니다.
    더미 데이터는 아래와 같습니다.
new Runimo("토끼_dummy", "R-100", "마당에 사는 토끼 dummy", "http://dummy", EggType.MADANG);

[전달 사항]

  • 어디선가 본 스프레드시트에서 러니모 코드("R-101")가 있어서 가져다썼는데
    다시 찾으려니까 시트가 어디있었는지 못찾겠네요,,
    여튼 코드도 계속 기재해주시면 감사하겠습니다!
  • hatch 를 별도 도메인으로 뺐는데,
    내부 로직 구현한 후에 클래스 수랑 복잡도를 봤을 때 runimo 도메인이랑 합쳐도 될 것 같으면 합칠게요
  • Usecase 에서 다른 도메인 Repository 그냥 가져다 썼어요 필요하다면 나중에 정리..

놓친 거 있으면 말씀해주세요. 감사합니다.

@jeeheaG jeeheaG requested a review from ekgns33 April 4, 2025 18:14
@jeeheaG jeeheaG self-assigned this Apr 4, 2025
Copy link
Copy Markdown
Contributor

@ekgns33 ekgns33 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다!

Comment thread src/test/resources/sql/hatch_test_data.sql Outdated
Comment thread src/main/java/org/runimo/runimo/runimo/service/usecase/RunimoUsecaseImpl.java Outdated
Comment thread src/main/java/org/runimo/runimo/hatch/service/usecase/HatchUsecaseImpl.java Outdated
Comment thread src/main/java/org/runimo/runimo/hatch/exception/HatchException.java
Copy link
Copy Markdown
Contributor

@ekgns33 ekgns33 left a comment

Choose a reason for hiding this comment

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

Let's Roll!

@jeeheaG
Copy link
Copy Markdown
Contributor Author

jeeheaG commented Apr 5, 2025

저 실패 테스트 짜다가 에러 발견해서 고치고 머지할게요 잠시만욥

@jeeheaG
Copy link
Copy Markdown
Contributor Author

jeeheaG commented Apr 5, 2025

@ekgns33 실패 테스트 짜다가 발견한 사항이 있어요
커스텀 exception 던진 에러응답이 다 status 400 으로 오길래 왜이러나 했는데
각 커스텀 exception 클래스에서 of() 메서드를 정의 안해둬서
부모클래스인 BusinessException 의 of() 가 사용되고 다 BusinessException 으로 던져지고 있었습니다.

다훈님이 만드신 커스텀 exception 클래스들 2개에도 of() 정의 안되었던데 추가해놓을까요?
아래는 코드 예시입니다.

public class HatchException extends BusinessException {
    protected HatchException(CustomResponseCode errorCode) {
        super(errorCode);
    }

    protected HatchException(CustomResponseCode errorCode, String logMessage) {
        super(errorCode, logMessage);
    }

   // 추가 - 본인 클래스 예외를 던지는 of() 메서드
    public static HatchException of(CustomResponseCode errorCode) {
        return new HatchException(errorCode, errorCode.getLogMessage());
    }
}

@ekgns33
Copy link
Copy Markdown
Contributor

ekgns33 commented Apr 6, 2025

@ekgns33 실패 테스트 짜다가 발견한 사항이 있어요 커스텀 exception 던진 에러응답이 다 status 400 으로 오길래 왜이러나 했는데 각 커스텀 exception 클래스에서 of() 메서드를 정의 안해둬서 부모클래스인 BusinessException 의 of() 가 사용되고 다 BusinessException 으로 던져지고 있었습니다.

다훈님이 만드신 커스텀 exception 클래스들 2개에도 of() 정의 안되었던데 추가해놓을까요? 아래는 코드 예시입니다.

public class HatchException extends BusinessException {
    protected HatchException(CustomResponseCode errorCode) {
        super(errorCode);
    }

    protected HatchException(CustomResponseCode errorCode, String logMessage) {
        super(errorCode, logMessage);
    }

   // 추가 - 본인 클래스 예외를 던지는 of() 메서드
    public static HatchException of(CustomResponseCode errorCode) {
        return new HatchException(errorCode, errorCode.getLogMessage());
    }
}

아닛 그런 일이 있었군요. 그런데, 400아닌걸 비즈니스에서 던지는게 있나요? 404같은걸 말씀하시는걸까요?

  • 제가 체크를 못했다면 아마 NoSuchElementException 으로 처리해서 그런것같습니다.
  • 잡아주신 방향으로 수정해서 PR올릴게요 BusinessException을 abstract로 바꾸고 구현하도록 하는게 어떨까요?

@jeeheaG
Copy link
Copy Markdown
Contributor Author

jeeheaG commented Apr 6, 2025

  1. 네! 404 403 같은 경우 맞습니다
    저는 각 status code에 http status 도 넣어서 쓰고 있어요

  2. abstract 좋아요 제가 BusinessException을 abstract class로 바꿀까요?
    -> 아 근데 생각해보니까 static 메서드라서 abstract 불가..
    인스턴스 메서드로 바꿀 거 아니면 그냥 신경써서 매번 정의해줘야 할 것 같아요 @ekgns33

@jeeheaG
Copy link
Copy Markdown
Contributor Author

jeeheaG commented Apr 6, 2025

[추가 구현] 부화 후 이미 보유한 러니모인지 중복 확인하는 로직을 추가했습니다.

@ekgns33 ekgns33 merged commit d2c4761 into main Apr 6, 2025
3 checks passed
@ekgns33 ekgns33 deleted the feat/hatch-logic branch April 6, 2025 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants