DummyPublisherFactory.java
package qwerty.chaekit.global.init;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import qwerty.chaekit.domain.member.Member;
import qwerty.chaekit.domain.member.MemberRepository;
import qwerty.chaekit.domain.member.enums.Role;
import qwerty.chaekit.domain.member.publisher.PublisherProfile;
import qwerty.chaekit.domain.member.publisher.PublisherProfileRepository;
import qwerty.chaekit.global.init.dummy.DummyPublisher;
import qwerty.chaekit.service.member.MemberJoinHelper;
@Slf4j
@Component
@RequiredArgsConstructor
public class DummyPublisherFactory {
private final MemberRepository memberRepository;
private final PublisherProfileRepository publisherProfileRepository;
private final MemberJoinHelper memberJoinHelper;
public void saveDummyPublishers() {
for (DummyPublisher dummyPublisher : DummyPublisher.values()) {
saveDummyPublisher(dummyPublisher);
}
}
public void saveDummyPublisher(DummyPublisher publisherSample) {
String email = publisherSample.getEmail();
String publisherName = publisherSample.getPublisherName();
String profileImageKey = publisherSample.getProfileImageKey();
String defaultPassword = "0000";
if (memberRepository.existsByEmail(email)) {
return;
}
Member publisherMember = memberJoinHelper.saveMember(email, defaultPassword, Role.ROLE_PUBLISHER);
publisherProfileRepository.save(
PublisherProfile.builder()
.member(publisherMember)
.publisherName(publisherName)
.profileImageKey(profileImageKey)
.build()
);
log.info("출판사 \"{}\"가 생성되었습니다.", publisherName);
}
}