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: 반려동물 등록/수정 플로우 변경 #288

Merged
merged 1 commit into from
Aug 17, 2023
Merged

Conversation

iamjooon2
Copy link
Collaborator

@iamjooon2 iamjooon2 commented Aug 16, 2023

📄 Summary

사용자가 등록/수정하려는 반려동물이
1 ) 믹스견일 경우

  • 견종(Breed)크기(PetSize)를 모두 입력받는다

2 ) 믹스견이 아닐 경우

  • 견종(Breed)만 입력받는다
// CreatePetRequest , UpdatePetRequest
public record CreatePetRequest (
        @NotBlank(message = "Null 또는 공백이 포함될 수 없습니다. 올바른 값인지 확인해주세요.")
        String name,

        @NotBlank(message = "Null 또는 공백이 포함될 수 없습니다. 올바른 값인지 확인해주세요.")
        String gender,

        @NotNull // 사용자가 이미지를 등록하지 않을 시, 빈 문자열 등록
        String imageUrl,

        @Max(value = 20, message = "나이는 최대 20까지 입력 가능합니다.")
        @Min(value = 0, message = "나이는 최소 0부터 입력 가능합니다.")
        Integer age,

        @NotBlank(message = "Null 또는 공백이 포함될 수 없습니다. 올바른 값인지 확인해주세요.")
        String breed,

        @Nullable // 믹스견이 아닌 경우, 입력받지 않음
        String petSize,

        @Max(value = 100, message = "몸무게는 최대 100까지 입력 가능합니다.")
        @Min(value = 0, message = "몸무게는 최소 0부터 입력 가능합니다.")
        Double weight
) {
      public PetDto toDto() {
          return new PetDto(name, gender, imageUrl, age, breed, petSize, weight);
      }
}
public class  Petservice {

    // ...
    public Long createPet(Long memberId, PetDto petDto) {
        Member owner = memberRepository.getById(memberId);
        Breeds breeds = findBreeds(petDto);

        Pet pet = petDto.toEntity(owner, breeds);
        updateDefaultImage(pet);

        return petRepository.save(pet).getId();
    }

    private Breeds findBreeds(PetDto petDto) {
        if (petDto.petSize() == null) {
            return breedsRepository.getByName(petDto.breed());
        }
        PetSize petSize = petSizeRepository.getByName(petDto.petSize());
        return breedsRepository.getByPetSizeAndName(petSize, petDto.breed());
    }

      // ...
}

@iamjooon2 iamjooon2 added this to the 4차 데모데이 milestone Aug 16, 2023
@iamjooon2 iamjooon2 self-assigned this Aug 16, 2023
@iamjooon2 iamjooon2 changed the title feature 반려동물 등록/수정 플로우 변경 feat: 반려동물 등록/수정 플로우 변경 Aug 16, 2023
@iamjooon2 iamjooon2 merged commit 3ea30b2 into develop Aug 17, 2023
1 check passed
@iamjooon2 iamjooon2 deleted the feature/#286 branch August 17, 2023 01:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[BE] 반려동물 정보 수정 기능 [BE] 반려동물 정보 등록 기능
3 participants