Skip to content

Commit

Permalink
feat: 도메인 정보 갱신 영속성 로직 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
hseong3243 committed Mar 25, 2024
1 parent 9981d2c commit 270c2c9
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.seong.shoutlink.domain.domain.repository;

import com.seong.shoutlink.domain.common.BaseEntity;
import com.seong.shoutlink.domain.domain.Domain;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@Table(name = "domain")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class DomainEntity extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long domainId;
private String rootDomain;

public DomainEntity(String rootDomain) {
this(null, rootDomain);
}

public DomainEntity(Long domainId, String rootDomain) {
this.domainId = domainId;
this.rootDomain = rootDomain;
}

public static DomainEntity create(Domain domain) {
return new DomainEntity(domain.getRootDomain());
}

public Domain toDomain() {
return new Domain(domainId, rootDomain);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.seong.shoutlink.domain.domain.repository;

import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;

public interface DomainJpaRepository extends JpaRepository<DomainEntity, Long> {

Optional<DomainEntity> findByRootDomain(String rootDomain);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.seong.shoutlink.domain.domain.repository;

import com.seong.shoutlink.domain.domain.Domain;
import com.seong.shoutlink.domain.domain.service.DomainRepository;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;

@Repository
@RequiredArgsConstructor
public class DomainRepositoryImpl implements DomainRepository {

private final DomainJpaRepository domainJpaRepository;

@Override
public Optional<Domain> findByRootDomain(String rootDomain) {
return domainJpaRepository.findByRootDomain(rootDomain)
.map(DomainEntity::toDomain);
}

@Override
public Domain save(Domain domain) {
return domainJpaRepository.save(DomainEntity.create(domain))
.toDomain();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.seong.shoutlink.domain.link.repository;

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.linkbundle.LinkBundle;
Expand All @@ -26,6 +27,7 @@ public class LinkEntity extends BaseEntity {
private String url;
private String description;
private Long linkBundleId;
private Long domainId;

private LinkEntity(String url, String description, Long linkBundleId) {
this.url = url;
Expand All @@ -45,4 +47,8 @@ public static LinkEntity create(LinkWithLinkBundle linkWithLinkBundle) {
public Link toDomain() {
return new Link(linkId, url, description);
}

public void updateDomainId(Domain domain) {
domainId = domain.getDomainId();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ public LinkPaginationResult findLinks(

@Override
public void updateLinkDomain(Link link, Domain domain) {

linkJpaRepository.findById(link.getLinkId())
.ifPresent(linkEntity -> linkEntity.updateDomainId(domain));
}

@Override
Expand Down

0 comments on commit 270c2c9

Please sign in to comment.