Skip to content

Commit

Permalink
refactor: LinkWithLinkBundle 클래스 명 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
hseong3243 committed May 2, 2024
1 parent b98f084 commit 2e5cd90
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import lombok.Getter;

@Getter
public class LinkWithLinkBundle {
public class LinkBundleAndLink {

private final Link link;
private final LinkBundle linkBundle;

public LinkWithLinkBundle(Link link, LinkBundle linkBundle) {
public LinkBundleAndLink(Link link, LinkBundle linkBundle) {
this.link = link;
this.linkBundle = linkBundle;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.seong.shoutlink.domain.common.BaseEntity;
import com.seong.shoutlink.domain.domain.Domain;
import com.seong.shoutlink.domain.link.Link;
import com.seong.shoutlink.domain.link.LinkWithLinkBundle;
import com.seong.shoutlink.domain.link.LinkBundleAndLink;
import com.seong.shoutlink.domain.link.LinkBundle;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
Expand Down Expand Up @@ -35,9 +35,9 @@ private LinkEntity(String url, String description, Long linkBundleId) {
this.linkBundleId = linkBundleId;
}

public static LinkEntity create(LinkWithLinkBundle linkWithLinkBundle) {
Link link = linkWithLinkBundle.getLink();
LinkBundle linkBundle = linkWithLinkBundle.getLinkBundle();
public static LinkEntity create(LinkBundleAndLink linkBundleAndLink) {
Link link = linkBundleAndLink.getLink();
LinkBundle linkBundle = linkBundleAndLink.getLinkBundle();
return new LinkEntity(
link.getUrl(),
link.getDescription(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.seong.shoutlink.domain.domain.Domain;
import com.seong.shoutlink.domain.hub.Hub;
import com.seong.shoutlink.domain.link.Link;
import com.seong.shoutlink.domain.link.LinkWithLinkBundle;
import com.seong.shoutlink.domain.link.LinkBundleAndLink;
import com.seong.shoutlink.domain.link.service.LinkRepository;
import com.seong.shoutlink.domain.link.service.result.LinkPaginationResult;
import com.seong.shoutlink.domain.link.LinkBundle;
Expand All @@ -24,8 +24,8 @@ public class LinkRepositoryImpl implements LinkRepository {
private final LinkJpaRepository linkJpaRepository;

@Override
public Long save(LinkWithLinkBundle linkWithLinkBundle) {
LinkEntity linkEntity = linkJpaRepository.save(LinkEntity.create(linkWithLinkBundle));
public Long save(LinkBundleAndLink linkBundleAndLink) {
LinkEntity linkEntity = linkJpaRepository.save(LinkEntity.create(linkBundleAndLink));
return linkEntity.getLinkId();
}

Expand Down Expand Up @@ -58,15 +58,15 @@ public Optional<Link> findById(Long linkId) {
}

@Override
public List<LinkWithLinkBundle> findAllByLinkBundlesIn(List<LinkBundle> linkBundles) {
public List<LinkBundleAndLink> findAllByLinkBundlesIn(List<LinkBundle> linkBundles) {
List<Long> linkBundleIds = linkBundles.stream()
.map(LinkBundle::getLinkBundleId)
.toList();
List<LinkEntity> linkEntities = linkJpaRepository.findAllByLinkBundleIdIn(linkBundleIds);
Map<Long, LinkBundle> linkBundleIdAndLinkBundle = linkBundles.stream()
.collect(Collectors.toMap(LinkBundle::getLinkBundleId, linkBundle -> linkBundle));
return linkEntities.stream()
.map(linkEntity -> new LinkWithLinkBundle(linkEntity.toDomain(),
.map(linkEntity -> new LinkBundleAndLink(linkEntity.toDomain(),
linkBundleIdAndLinkBundle.get(linkEntity.getLinkBundleId())))
.toList();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.seong.shoutlink.domain.domain.Domain;
import com.seong.shoutlink.domain.hub.Hub;
import com.seong.shoutlink.domain.link.Link;
import com.seong.shoutlink.domain.link.LinkWithLinkBundle;
import com.seong.shoutlink.domain.link.LinkBundleAndLink;
import com.seong.shoutlink.domain.link.service.result.LinkPaginationResult;
import com.seong.shoutlink.domain.link.LinkBundle;
import com.seong.shoutlink.domain.member.Member;
Expand All @@ -12,15 +12,15 @@

public interface LinkRepository {

Long save(LinkWithLinkBundle linkWithLinkBundle);
Long save(LinkBundleAndLink linkBundleAndLink);

LinkPaginationResult findLinks(LinkBundle linkBundle, int page, int size);

void updateLinkDomain(Link link, Domain domain);

Optional<Link> findById(Long linkId);

List<LinkWithLinkBundle> findAllByLinkBundlesIn(List<LinkBundle> linkBundles);
List<LinkBundleAndLink> findAllByLinkBundlesIn(List<LinkBundle> linkBundles);

Optional<Link> findMemberLink(Long linkId, Member member);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import com.seong.shoutlink.domain.hub.service.HubRepository;
import com.seong.shoutlink.domain.hub.service.HubMemberRepository;
import com.seong.shoutlink.domain.link.Link;
import com.seong.shoutlink.domain.link.LinkWithLinkBundle;
import com.seong.shoutlink.domain.link.LinkBundleAndLink;
import com.seong.shoutlink.domain.link.service.event.CreateHubLinkEvent;
import com.seong.shoutlink.domain.link.service.event.CreateMemberLinkEvent;
import com.seong.shoutlink.domain.link.service.request.CreateHubLinkCommand;
Expand Down Expand Up @@ -47,8 +47,8 @@ public CreateLinkResponse createLink(CreateLinkCommand command) {
Member member = getMember(command.memberId());
LinkBundle linkBundle = getLinkBundle(command.linkBundleId(), member);
Link link = new Link(command.url(), command.description());
LinkWithLinkBundle linkWithLinkBundle = new LinkWithLinkBundle(link, linkBundle);
Long linkId = linkRepository.save(linkWithLinkBundle);
LinkBundleAndLink linkBundleAndLink = new LinkBundleAndLink(link, linkBundle);
Long linkId = linkRepository.save(linkBundleAndLink);
eventPublisher.publishEvent(
new CreateMemberLinkEvent(linkId, link.getUrl(), member.getMemberId()));
return new CreateLinkResponse(linkId);
Expand Down Expand Up @@ -85,7 +85,7 @@ public CreateHubLinkResponse createHubLink(CreateHubLinkCommand command) {

LinkBundle hubLinkBundle = getHubLinkBundle(command.linkBundleId(), hub);
Link link = new Link(command.url(), command.description());
Long linkId = linkRepository.save(new LinkWithLinkBundle(link, hubLinkBundle));
Long linkId = linkRepository.save(new LinkBundleAndLink(link, hubLinkBundle));
eventPublisher.publishEvent(new CreateHubLinkEvent(linkId, link.getUrl(), hub.getHubId()));
return new CreateHubLinkResponse(linkId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import com.seong.shoutlink.domain.hub.Hub;
import com.seong.shoutlink.domain.hub.service.HubRepository;
import com.seong.shoutlink.domain.link.LinkBundleAndLinks;
import com.seong.shoutlink.domain.link.LinkWithLinkBundle;
import com.seong.shoutlink.domain.link.LinkBundleAndLink;
import com.seong.shoutlink.domain.link.service.LinkRepository;
import com.seong.shoutlink.domain.link.LinkBundle;
import com.seong.shoutlink.domain.link.service.LinkBundleRepository;
Expand Down Expand Up @@ -48,7 +48,7 @@ public CreateTagResponse autoCreateHubTags(AutoCreateHubTagCommand command) {
Hub hub = getHub(command.hubId());
checkHubTagIsCreatedWithinADay(hub);
List<LinkBundle> hubLinkBundles = linkBundleRepository.findHubLinkBundles(hub);
List<LinkWithLinkBundle> links = linkRepository.findAllByLinkBundlesIn(hubLinkBundles);
List<LinkBundleAndLink> links = linkRepository.findAllByLinkBundlesIn(hubLinkBundles);

List<LinkBundleAndLinks> linkBundlesAndLinks = groupingLinks(links);
int generateTagCount = calculateNumberOfTag(links);
Expand Down Expand Up @@ -79,7 +79,7 @@ public CreateTagResponse autoCreateMemberTags(AutoCreateMemberTagCommand command
Member member = getMember(command.memberId());
checkMemberTagIsCreatedWithinADay(member);
List<LinkBundle> linkBundles = linkBundleRepository.findLinkBundlesThatMembersHave(member);
List<LinkWithLinkBundle> links = linkRepository.findAllByLinkBundlesIn(linkBundles);
List<LinkBundleAndLink> links = linkRepository.findAllByLinkBundlesIn(linkBundles);

List<LinkBundleAndLinks> linkBundleAndLinks = groupingLinks(links);
int generateTagCount = calculateNumberOfTag(links);
Expand All @@ -106,17 +106,17 @@ private void checkMemberTagIsCreatedWithinADay(Member member) {
});
}

private List<LinkBundleAndLinks> groupingLinks(List<LinkWithLinkBundle> links) {
private List<LinkBundleAndLinks> groupingLinks(List<LinkBundleAndLink> links) {
return links.stream()
.collect(groupingBy(
LinkWithLinkBundle::getLinkBundle,
mapping(LinkWithLinkBundle::getLink, toList())))
LinkBundleAndLink::getLinkBundle,
mapping(LinkBundleAndLink::getLink, toList())))
.entrySet().stream()
.map(entry -> new LinkBundleAndLinks(entry.getKey(), entry.getValue()))
.toList();
}

private int calculateNumberOfTag(List<LinkWithLinkBundle> links) {
private int calculateNumberOfTag(List<LinkBundleAndLink> links) {
int totalLinkCount = links.size();
if (totalLinkCount < MINIMUM_TAG_CONDITION
|| totalLinkCount % MINIMUM_TAG_CONDITION != ZERO) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.seong.shoutlink.domain.domain.Domain;
import com.seong.shoutlink.domain.hub.Hub;
import com.seong.shoutlink.domain.link.Link;
import com.seong.shoutlink.domain.link.LinkWithLinkBundle;
import com.seong.shoutlink.domain.link.LinkBundleAndLink;
import com.seong.shoutlink.domain.link.service.LinkRepository;
import com.seong.shoutlink.domain.link.service.result.LinkPaginationResult;
import com.seong.shoutlink.domain.link.LinkBundle;
Expand Down Expand Up @@ -33,9 +33,9 @@ public int count() {
}

@Override
public Long save(LinkWithLinkBundle linkWithLinkBundle) {
public Long save(LinkBundleAndLink linkBundleAndLink) {
long nextId = getNextId();
memory.put(nextId, linkWithLinkBundle.getLink());
memory.put(nextId, linkBundleAndLink.getLink());
return nextId;
}

Expand Down Expand Up @@ -63,12 +63,12 @@ public Optional<Link> findById(Long linkId) {
}

@Override
public List<LinkWithLinkBundle> findAllByLinkBundlesIn(List<LinkBundle> linkBundles) {
List<LinkWithLinkBundle> result = new ArrayList<>();
public List<LinkBundleAndLink> findAllByLinkBundlesIn(List<LinkBundle> linkBundles) {
List<LinkBundleAndLink> result = new ArrayList<>();
List<Link> links = memory.values().stream().toList();
for(int i=0; i<links.size(); i++) {
LinkBundle linkBundle = linkBundles.get(i % linkBundles.size());
result.add(new LinkWithLinkBundle(links.get(i), linkBundle));
result.add(new LinkBundleAndLink(links.get(i), linkBundle));
}
return result;
}
Expand Down

0 comments on commit 2e5cd90

Please sign in to comment.