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

[BE] 이미지 URL을 가진 엔티티에 모든 이미지 URL을 반환하는 메서드를 추가한다. #999

Open
seokjin8678 opened this issue May 30, 2024 · 0 comments · May be fixed by #1000
Assignees
Labels
BE 백엔드에 관련된 작업 ⚙️ 리팩터링 리팩터링에 관련된 작업 🏗️ 기능 기능 추가에 관한 작업

Comments

@seokjin8678
Copy link
Collaborator

✨ 세부 내용

이미지 URL을 가진 엔티티들에 모든 이미지 URL을 반환하는 메서드를 추가합니다.

이유는 이미지 URL을 사용하는 클라이언트가 대상으로 하는 엔티티의 이미지 URL에 대해 강한 결합을 가지고 있기 때문입니다.

public class AsyncSchoolUploadImagesStatusChangeEventListener {
    ...

    @TransactionalEventListener(value = SchoolCreatedEvent.class, phase = TransactionPhase.AFTER_COMMIT)
    public void changeAttachedStatusSchoolImagesEventHandler(SchoolCreatedEvent event) {
        School school = event.school();
        Long schoolId = school.getId();
        List<String> imageUris = List.of(school.getBackgroundUrl(), school.getLogoUrl());
        uploadFileStatusChangeService.changeAttached(schoolId, SCHOOL, imageUris);
    }

    @TransactionalEventListener(value = SchoolUpdatedEvent.class, phase = TransactionPhase.AFTER_COMMIT)
    public void changeRenewalStatusSchoolImagesEventHandler(SchoolUpdatedEvent event) {
        School school = event.school();
        Long schoolId = school.getId();
        List<String> imageUris = List.of(school.getBackgroundUrl(), school.getLogoUrl());
        uploadFileStatusChangeService.changeRenewal(schoolId, SCHOOL, imageUris);
    }
}

학교가 가진 이미지의 상태를 변경하는 클래스인 AsyncSchoolUploadImagesStatusChangeEventListener의 메서드를 보면, getBackgroundUrl(), getLogoUrl() 같은 메서드를 호출하는 것을 볼 수 있습니다.

그런데 굳이 이런 이미지의 구체적인 형식을 클라이언트는 알 필요가 없습니다.
(코드의 중복도 생기는건 덤이구요 😂)

따라서 이미지 URL을 가지는 엔티티에 대해 다음과 같은 메서드를 추가해서 사용하면 좋을 것 같습니다.

public class School {
    ...
    public List<String> getImageUrls() {
        return List.of(backgroundUrl, logoUrl);
    }
    ...
}

⏰ 예상 소요 시간

20분

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드에 관련된 작업 ⚙️ 리팩터링 리팩터링에 관련된 작업 🏗️ 기능 기능 추가에 관한 작업
Projects
Status: Todo
1 participant