Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
d47909e
refactor: AccountRepository 관련 리팩터링
apptie Jul 6, 2025
cb6ea48
refactor: 회원 관련 네이밍 변경
apptie Jul 6, 2025
afbd4ae
test: AccountGatewayRepository 테스트 추가
apptie Jul 6, 2025
282876b
refactor: Social 필드 네이밍 변경
apptie Jul 6, 2025
e8c5e49
refactor: 인가 관련 네이밍 변경
apptie Jul 6, 2025
ae39699
refactor: BookmarkGatewayRepository 리팩터링
apptie Jul 6, 2025
85e4e43
style: BookmarkGatewayRepository 코드 포맷 변경
apptie Jul 6, 2025
493403d
refactor: Comment 리팩터링
apptie Jul 6, 2025
f21295d
refactor: CommentRepository 리팩터링
apptie Jul 6, 2025
55576d8
test: CommentGatewayRepository 테스트 추가
apptie Jul 6, 2025
defe1e5
fix: Quiz 풀이 로직 변경
apptie Jul 6, 2025
17be76e
refactor: QuizService CQS 및 Facade 패턴 적용
apptie Jul 6, 2025
6c3e081
refactor: TodayQuizService CQS 및 Facade 패턴 적용
apptie Jul 6, 2025
e601b70
refactor: Report 도메인 관련 내용 변경
apptie Jul 7, 2025
b678248
refactor: Skill 도메인 리팩터링
apptie Jul 7, 2025
ac40ce5
refactor: Word 관련 도메인 리팩터링
apptie Jul 7, 2025
857d820
refactor: QuizWordCountValidator 구현 변경
apptie Jul 7, 2025
d86ecff
refactor: PronunciationGatewayRepository 리팩터링
apptie Jul 7, 2025
afddc8b
test: PronunciationGatewayRepository 테스트 추가
apptie Jul 7, 2025
338f780
refactor: WordExampleGatewayRepository 리팩터링
apptie Jul 7, 2025
45ab015
refactor: WordRandomGatewayRepository 리팩터링
apptie Jul 7, 2025
1984a71
refactor: WordInfo 네이밍 리팩터링
apptie Jul 7, 2025
eba83e7
test: WordExampleGatewayRepository 테스트 추가
apptie Jul 7, 2025
f6df168
fix: 용어 조회수 증가 로직이 삭제되지 않은 대상은 동작하지 않도록 변경
apptie Jul 7, 2025
ce97c86
refactor: WordRepository 메서드 네이밍 변경
apptie Jul 7, 2025
00af558
test: WordGatewayRepository 테스트 추가
apptie Jul 8, 2025
5d44c6f
refactor: CommentRepository 관련 네이밍 리팩터링
apptie Jul 8, 2025
e7a64a3
test: CommentGatewayRepository 테스트 리팩터링
apptie Jul 8, 2025
79379c1
test: AccountGatewayRepository 테스트 리팩터링
apptie Jul 8, 2025
6c4ed37
test: PronunciationGatewayRepository 테스트 리팩터링
apptie Jul 8, 2025
b33df66
test: WordExampleGatewayRepository 테스트 리팩터링
apptie Jul 8, 2025
5bfd4b2
test: WordGatewayRepository 테스트 리팩터링
apptie Jul 9, 2025
3b91406
test: Bookmark 관련 테스트 스크립트 변경
apptie Jul 9, 2025
1ee87c8
test: BookmarkGatewayRepository 테스트 추가
apptie Jul 9, 2025
75af268
fix: 용어 조회 시 soft delete 대상은 조회되지 않도록 변경
apptie Jul 10, 2025
e7835bf
test: WordViewGatewayRepository 테스트 추가
apptie Jul 10, 2025
060f0cf
refactor: QuizDtoMapper 리팩터링
apptie Jul 10, 2025
e833c87
refactor: Profile 관련 리팩터링
apptie Jul 10, 2025
5ca2fc3
fix: 용어 검색 기능 쿼리 용어 발음 조건 위치 변경
apptie Jul 11, 2025
9784c93
refactor: 사용하지 않는 Account 관련 DTO 삭제
apptie Jul 11, 2025
93a893a
refactor: Account 관련 DTO 네이밍 변경
apptie Jul 11, 2025
2985efc
refactor: AccountController 메서드 네이밍 리팩터링
apptie Jul 11, 2025
650a155
refactor: AccountService 리팩터링
apptie Jul 11, 2025
8fde053
refactor: AccountResponseMapper를 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 11, 2025
0e905a9
test: ProfileImageName 테스트 케이스 리팩터링
apptie Jul 11, 2025
c3d7103
refactor: AdminReportService 리팩터링
apptie Jul 11, 2025
defa1ee
refactor: ReportResponseMapper를 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 11, 2025
af15c2b
feat: 오늘의 퀴즈 생성 서비스 추가
apptie Jul 11, 2025
3643a17
test: AdminTodayQuizService 테스트 검증 로직 추가
apptie Jul 11, 2025
05368a7
refactor: AdminTodayQuizService 리팩터링
apptie Jul 11, 2025
c0dd304
fix: 용어 검색 기능 쿼리 용어 이름 조건 위치 변경
apptie Jul 11, 2025
2c0ae84
test: AdminTodayQuizServiceFacade 테스트 네이밍 변경
apptie Jul 13, 2025
7a0bde8
refactor: CreateTodayQuizService 클래스 접근제어자 변경
apptie Jul 13, 2025
deb2d89
refactor: CreateTodayQuizService 메서드 분리
apptie Jul 13, 2025
4aba22f
refactor: CreateTodayQuizService 메서드 네이밍 리팩터링
apptie Jul 13, 2025
6ee8027
test: AdminWordService 용어 추가 테스트 검증 사항 추가
apptie Jul 14, 2025
2ac3a8a
feat: 용어 생성 관련 서비스 추가
apptie Jul 14, 2025
124875e
feat: 용어 갱신 관련 서비스 추가
apptie Jul 14, 2025
d1d699d
feat: 용어 삭제 관련 서비스 추가
apptie Jul 14, 2025
c49e6b9
refactor: AdminWordService Facade 패턴으로 리팩터링
apptie Jul 14, 2025
0fa7566
refactor: 인증 관련 서비스 패키지 변경
apptie Jul 14, 2025
ad5f899
refactor: InitAccountCareerService 메서드 분리 및 네이밍 리팩터링
apptie Jul 14, 2025
ed1a909
refactor: LoginService 메서드 분리
apptie Jul 14, 2025
7058ada
refactor: RefreshTokenService 메서드 분리 및 불필요한 트랜잭션 제거
apptie Jul 14, 2025
2e5bb9e
refactor: SignUpService 메서드 분리 및 네이밍 리팩터링
apptie Jul 14, 2025
2268fdf
refactor: JwtDecoder 메서드 분리
apptie Jul 14, 2025
cdf0213
refactor: JwtEncoder 메서드 및 메서드 네이밍 리팩터링
apptie Jul 14, 2025
313ea73
refactor: AuthController 메서드 네이밍 변경
apptie Jul 15, 2025
6dcf552
fix: BookmarkService 락 관련 로직 변경
apptie Jul 16, 2025
ec08361
test: BookmarkService 동시성 테스트 리팩터링
apptie Jul 16, 2025
a0f6472
test: 테스트 설정에 사용하지 않는 import문 제거
apptie Jul 16, 2025
bced82f
test: 테스트 환경 JWT Decoder 설정 추가
apptie Jul 16, 2025
1508398
feat: 북마크 생성 관련 서비스 추가
apptie Jul 16, 2025
56ee919
feat: 북마크 삭제 관련 서비스 추가
apptie Jul 16, 2025
323b3ad
refactor: BookmarkMapper를 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 16, 2025
48ac5f6
test: CommentService 사용하지 않는 DI 제거
apptie Jul 16, 2025
478f4ec
feat: 북마크 조회 관련 서비스 추가
apptie Jul 16, 2025
1afd425
feat: 북마크 생성 시 생성된 북마크를 반환하도록 변경
apptie Jul 16, 2025
97a360a
refactor: BookmarkService Facade 패턴으로 리팩터링
apptie Jul 16, 2025
5ed58fb
test: ReadBookmarkService 테스트 상수 타입 변경
apptie Jul 16, 2025
6abc57b
refactor: ReadBookmarkService 클래스 접근제어자 변경
apptie Jul 19, 2025
8db9c5e
feat: 댓글 생성 관련 서비스 추가
apptie Jul 19, 2025
5c74f82
refactor: CommentResponseCollectionMapper를 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 19, 2025
c1ef44f
feat: 댓글 삭제 관련 서비스 추가
apptie Jul 19, 2025
81e5967
feat: 댓글 수정 관련 서비스 추가
apptie Jul 19, 2025
e8646d4
feat: 댓글 조회 관련 서비스 추가
apptie Jul 19, 2025
2815c51
refactor: CommentService Facade 패턴으로 리팩터링
apptie Jul 26, 2025
0e3064a
refactor: LikeService 메서드 네이밍 변경 및 메서드 통합
apptie Jul 26, 2025
678b373
refactor: ReportService 메서드 네이밍 리팩터링 및 메서드 분리
apptie Jul 26, 2025
241d749
refactor: SkillService 메서드 네이밍 리팩터링
apptie Jul 26, 2025
e49d809
refactor: SkillApplicationMapper를 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 26, 2025
ca40cff
refactor: WordApplicationMapper 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 26, 2025
1fd51b7
feat: 용어 조회 관련 서비스 추가
apptie Jul 26, 2025
7eb361e
style: ReadQuizService 반환 타입과 메서드 네이밍 공백 추가
apptie Jul 26, 2025
2380cd0
test: 퀴즈 관련 테스트에서 매직 넘버를 상수로 변경
apptie Jul 26, 2025
328f306
test: 오늘의 퀴즈 관련 테스트에서 매직 넘버를 상수로 변경
apptie Jul 26, 2025
a81fa3e
test: ReadWordViewServiceTest 필드 네이밍 변경 및 매직 넘버를 상수로 변경
apptie Jul 26, 2025
874ac47
feat: 용어 검색 관련 서비스 추가
apptie Jul 26, 2025
9ce9891
refactor: ReadWordViewService 클래스 접근 제어자를 package-private으로 변경
apptie Jul 26, 2025
dc73e17
feat: 많이 찾아본 용어 조회 서비스 추가
apptie Jul 26, 2025
cfde530
test: ReadPopularWordServiceTest 필드 네이밍 변경
apptie Jul 26, 2025
c446671
refactor: WordService Facade 패턴으로 리팩터링
apptie Jul 26, 2025
7b75f38
refactor: 퀴즈 관련 서비스 클래스 접근 제어자를 package-private으로 변경
apptie Jul 26, 2025
3da0ce1
refactor: 오늘의 퀴즈 관련 서비스 클래스 접근 제어자를 package-private으로 변경
apptie Jul 26, 2025
1dc740e
refactor: 퀴즈 관련 Mapper 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 26, 2025
b7f2739
refactor: 오늘의 퀴즈 관련 Mapper 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 26, 2025
3f1f976
refactor: DeletedWordIdRepository 패키지 변경
apptie Jul 26, 2025
2b2cffe
refactor: ReadCommentService 반환 타입 변경
apptie Jul 26, 2025
ef3f157
refactor: TodayQuizDtoMapper 유틸리티 클래스에서 스프링 빈으로 변경
apptie Jul 26, 2025
6d6b57b
refactor: CreateTodayQuizScheduler 패키지 변경
apptie Jul 26, 2025
522ae25
test: CreateTodayQuizScheduler 테스트 추가
apptie Jul 26, 2025
8b72e89
test: 테스트 격리 리스너 메모리 캐시 초기화 로직 추가
apptie Jul 26, 2025
a5dab73
fix: CreateTodayQuizService 오늘의 퀴즈 생성 메서드 파라미터 추가
apptie Jul 26, 2025
3425f6d
refactor: AdminWordServiceFacade 메서드 분리
apptie Jul 26, 2025
cbff82d
refactor: CreateTodayQuizService 클래스 접근 제어자를 package-private으로 변경
apptie Aug 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.dnd.spaced.core.account.application;

import com.dnd.spaced.core.account.application.dto.mapper.AccountResponseMapper;
import com.dnd.spaced.core.account.application.dto.request.ChangeCareerInfoRequest;
import com.dnd.spaced.core.account.application.dto.request.ChangeProfileInfoRequest;
import com.dnd.spaced.core.account.application.dto.request.ChangeCareerRequest;
import com.dnd.spaced.core.account.application.dto.request.ChangeProfileRequest;
import com.dnd.spaced.core.account.application.dto.response.AccountResponse;
import com.dnd.spaced.core.account.application.exception.ForbiddenAccountException;
import com.dnd.spaced.core.account.domain.Account;
Expand All @@ -17,40 +17,65 @@
public class AccountService {

private final AccountRepository accountRepository;
private final AccountResponseMapper mapper;

@Transactional
public void withdrawal(Long accountId) {
Account authorizedAccount = findAuthorizedAccount(accountId);
Account account = findAccount(accountId);

authorizedAccount.withdrawal();
withdrawAccount(account);
}

@Transactional
public void changeCareerInfo(Long accountId, ChangeCareerInfoRequest request) {
Account authorizedAccount = findAuthorizedAccount(accountId);
public void changeCareer(Long accountId, ChangeCareerRequest request) {
Account account = findAccount(accountId);

authorizedAccount.changeCareerInfo(
request.changedJobGroupName(),
request.changedCompanyName(),
request.changedExperienceName()
);
updateAccountCareer(account, request);
}

@Transactional
public void changeProfileInfo(Long accountId, ChangeProfileInfoRequest request) {
Account authorizedAccount = findAuthorizedAccount(accountId);
ProfileImageName changedProfileImageName = ProfileImageName.findBy(request.changedProfileImageKoreanName());
public void changeProfile(Long accountId, ChangeProfileRequest request) {
Account account = findAccount(accountId);
ProfileImageName changedProfileImageName = findProfileImageName(request);

authorizedAccount.changeProfileInfo(request.changedNickname(), changedProfileImageName.getImageName());
updateAccountProfile(account, request, changedProfileImageName);
}

public AccountResponse readAccount(Long accountId) {
Account authorizedAccount = findAuthorizedAccount(accountId);
Account account = findAccount(accountId);

return convertAccountResponse(account);
}

private void withdrawAccount(Account account) {
account.withdrawal();
}

private ProfileImageName findProfileImageName(ChangeProfileRequest request) {
return ProfileImageName.findByKorean(request.changedProfileImageKoreanName());
}

private void updateAccountProfile(
Account account,
ChangeProfileRequest request,
ProfileImageName changedProfileImageName
) {
account.changeProfile(request.changedNickname(), changedProfileImageName);
}

private void updateAccountCareer(Account account, ChangeCareerRequest request) {
account.changeCareer(
request.changedJobGroupName(),
request.changedCompanyName(),
request.changedExperienceName()
);
}

return AccountResponseMapper.toDto(authorizedAccount);
private AccountResponse convertAccountResponse(Account account) {
return mapper.toDto(account);
}

private Account findAuthorizedAccount(Long accountId) {
private Account findAccount(Long accountId) {
return accountRepository.findBy(accountId)
.orElseThrow(() -> new ForbiddenAccountException("존재하지 않는 회원이거나 이미 탈퇴한 회원입니다."));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,23 @@

import com.dnd.spaced.core.account.application.dto.response.AccountResponse;
import com.dnd.spaced.core.account.domain.Account;
import com.dnd.spaced.core.account.domain.embed.CareerInfo;
import com.dnd.spaced.core.account.domain.embed.ProfileInfo;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import com.dnd.spaced.core.account.domain.embed.Career;
import com.dnd.spaced.core.account.domain.embed.Profile;
import com.dnd.spaced.global.mapper.Mapper;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class AccountResponseMapper {
@Mapper
public class AccountResponseMapper {

public static AccountResponse toDto(Account account) {
ProfileInfo profileInfo = account.getProfileInfo();
CareerInfo careerInfo = account.getCareerInfo();
public AccountResponse toDto(Account account) {
Profile profile = account.getProfile();
Career career = account.getCareer();

return new AccountResponse(
profileInfo.getNickname(),
profileInfo.getProfileImage(),
careerInfo.getJobGroup().getName(),
careerInfo.getCompany().getName(),
careerInfo.getExperience().getName()
profile.getNickname(),
profile.getProfileImageName(),
career.getJobGroup().getName(),
career.getCompany().getName(),
career.getExperience().getName()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import jakarta.validation.constraints.NotBlank;

public record ChangeCareerInfoRequest(
public record ChangeCareerRequest(
@NotBlank
String changedJobGroupName,

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import jakarta.validation.constraints.NotBlank;

public record ChangeProfileInfoRequest(
public record ChangeProfileRequest(
@NotBlank
String changedNickname,

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.dnd.spaced.core.account.domain;

import com.dnd.spaced.core.account.domain.embed.CareerInfo;
import com.dnd.spaced.core.account.domain.embed.ProfileInfo;
import com.dnd.spaced.core.account.domain.embed.SocialInfo;
import com.dnd.spaced.core.account.domain.embed.Career;
import com.dnd.spaced.core.account.domain.embed.Profile;
import com.dnd.spaced.core.account.domain.embed.Social;
import com.dnd.spaced.core.account.domain.enums.ProfileImageName;
import com.dnd.spaced.core.account.domain.enums.RegistrationId;
import com.dnd.spaced.core.account.domain.enums.Role;
import com.dnd.spaced.global.audit.BaseTimeEntity;
Expand Down Expand Up @@ -37,44 +38,44 @@ public class Account extends BaseTimeEntity {
private boolean deleted = false;

@Embedded
private SocialInfo socialInfo;
private Social social;

@Embedded
private ProfileInfo profileInfo;
private Profile profile;

@Embedded
private CareerInfo careerInfo;
private Career career;

@Builder
private Account(
String nickname,
String profileImage,
ProfileImageName profileImageName,
Role role,
RegistrationId registrationId,
String socialIdentifier
) {
this.profileInfo = ProfileInfo.of(nickname, profileImage);
this.profile = Profile.of(nickname, profileImageName);
this.role = role;
this.socialInfo = new SocialInfo(registrationId, socialIdentifier);
this.social = new Social(registrationId, socialIdentifier);
}

public void withdrawal() {
this.deleted = true;
}

public void changeCareerInfo(
public void changeCareer(
String changedJobGroupName,
String changedCompanyName,
String changedExperienceName) {
this.careerInfo = CareerInfo.builder()
.jobGroupName(changedJobGroupName)
.companyName(changedCompanyName)
.experienceName(changedExperienceName)
.build();
this.career = Career.builder()
.jobGroupName(changedJobGroupName)
.companyName(changedCompanyName)
.experienceName(changedExperienceName)
.build();
}

public void changeProfileInfo(String changedNickname, String changedProfileImage) {
this.profileInfo = ProfileInfo.of(changedNickname, changedProfileImage);
public void changeProfile(String changedNickname, ProfileImageName changedProfileImageName) {
this.profile = Profile.of(changedNickname, changedProfileImageName);
}

public boolean isEqualTo(Long id) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
@Getter
@Embeddable
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class CareerInfo {
public class Career {

@Enumerated(EnumType.STRING)
private JobGroup jobGroup;
Expand All @@ -26,7 +26,7 @@ public class CareerInfo {
private Experience experience;

@Builder
private CareerInfo(String jobGroupName, String companyName, String experienceName) {
private Career(String jobGroupName, String companyName, String experienceName) {
this.jobGroup = JobGroup.findBy(jobGroupName);
this.company = Company.findBy(companyName);
this.experience = Experience.findBy(experienceName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.dnd.spaced.core.account.domain.embed.exception.InvalidNicknameException;
import com.dnd.spaced.core.account.domain.embed.exception.InvalidProfileImageException;
import com.dnd.spaced.core.account.domain.enums.ProfileImageName;
import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Getter;
Expand All @@ -10,7 +11,7 @@
@Getter
@Embeddable
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class ProfileInfo {
public class Profile {

private static final int NICKNAME_MIN_LENGTH = 5;
private static final int NICKNAME_MAX_LENGTH = 10;
Expand All @@ -21,20 +22,24 @@ public class ProfileInfo {
);

private String nickname;
private String profileImage;
private String profileImageName;

public static ProfileInfo of(String nickname, String profileImage) {
validateContent(nickname, profileImage);
public static Profile of(String nickname, ProfileImageName profileImageName) {
validateNickname(nickname);
validateProfileImageName(profileImageName);

return new ProfileInfo(nickname, profileImage);
return new Profile(nickname, profileImageName.getImageName());
}

private static void validateContent(String nickname, String profileImage) {
private static void validateNickname(String nickname) {
if (isInvalidNickname(nickname)) {
throw new InvalidNicknameException(NICKNAME_EXCEPTION_MESSAGE);
}
if (isInvalidProfileImage(profileImage)) {
throw new InvalidProfileImageException("프로필 이미지 정보는 null이거나 비어 있을 수 없습니다.");
}

private static void validateProfileImageName(ProfileImageName profileImageName) {
if (isInvalidProfileImageName(profileImageName)) {
throw new InvalidProfileImageException("프로필 이미지 정보는 null일 수 없습니다.");
}
}

Expand All @@ -43,19 +48,12 @@ private static boolean isInvalidNickname(String nickname) {
|| nickname.length() < NICKNAME_MIN_LENGTH || nickname.length() > NICKNAME_MAX_LENGTH;
}

private static boolean isInvalidProfileImage(String profileImage) {
return profileImage == null || profileImage.isBlank();
private static boolean isInvalidProfileImageName(ProfileImageName profileImageName) {
return profileImageName == null;
}

private ProfileInfo(String nickname, String profileImage) {
private Profile(String nickname, String profileImageName) {
this.nickname = nickname;
this.profileImage = profileImage;
}

public void changeProfileInfo(String changedNickname, String changedProfileImage) {
validateContent(changedNickname, changedProfileImage);

this.nickname = changedNickname;
this.profileImage = changedProfileImage;
this.profileImageName = profileImageName;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
@Getter
@Embeddable
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class SocialInfo {
public class Social {

@Enumerated(EnumType.STRING)
private RegistrationId registrationId;

private String socialIdentifier;
private String socialId;

public SocialInfo(RegistrationId registrationId, String socialIdentifier) {
public Social(RegistrationId registrationId, String socialId) {
this.registrationId = registrationId;
this.socialIdentifier = socialIdentifier;
this.socialId = socialId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,17 @@ public static ProfileImageName findRandom() {
.orElse(EARTH);
}

public static ProfileImageName findBy(String korean) {
public static ProfileImageName findByKorean(String korean) {
return Arrays.stream(ProfileImageName.values())
.filter(profileImageName -> profileImageName.korean.equals(korean))
.findAny()
.orElseThrow(() -> new InvalidProfileImageNameException(String.format(EXCEPTION_MESSAGE, korean)));
}

public static ProfileImageName findByImageName(String imageName) {
return Arrays.stream(ProfileImageName.values())
.filter(profileImageName -> profileImageName.imageName.equals(imageName))
.findAny()
.orElseThrow(() -> new InvalidProfileImageNameException(String.format(EXCEPTION_MESSAGE, imageName)));
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.dnd.spaced.core.account.domain.repository;

import com.dnd.spaced.core.account.domain.Account;
import com.dnd.spaced.core.account.domain.enums.RegistrationId;
import com.dnd.spaced.core.account.domain.embed.Social;
import java.util.Optional;

public interface AccountRepository {
Expand All @@ -12,7 +12,7 @@ public interface AccountRepository {

Optional<Account> findBy(Long accountId);

Optional<Account> findBy(RegistrationId registrationId, String socialIdentifier);
Optional<Account> findBy(Social social);

Optional<Account> findPreInitializationAccountBy(Long accountId);
}
Loading