-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feat: 사용자는 도메인과 연관된 링크 목록을 조회할 수 있다.
Feat: 사용자는 도메인과 연관된 링크 목록을 조회할 수 있다.
- Loading branch information
Showing
16 changed files
with
389 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
17 changes: 17 additions & 0 deletions
17
...ain/java/com/seong/shoutlink/domain/domain/controller/request/FindDomainLinksRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.seong.shoutlink.domain.domain.controller.request; | ||
|
||
import jakarta.validation.constraints.Min; | ||
import java.util.Objects; | ||
import org.hibernate.validator.constraints.Range; | ||
|
||
public record FindDomainLinksRequest( | ||
@Min(value = 0, message = "페이지는 음수일 수 없습니다.") | ||
Integer page, | ||
@Range(min = 1, max = 100, message = "사이즈는 1 이상 100 이하여야 합니다.") | ||
Integer size) { | ||
|
||
public FindDomainLinksRequest(Integer page, Integer size) { | ||
this.page = Objects.isNull(page) ? 0 : page; | ||
this.size = Objects.isNull(size) ? 10 : size; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 5 additions & 0 deletions
5
src/main/java/com/seong/shoutlink/domain/domain/service/request/FindDomainLinksCommand.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.seong.shoutlink.domain.domain.service.request; | ||
|
||
public record FindDomainLinksCommand(Long domainId, int page, int size) { | ||
|
||
} |
5 changes: 5 additions & 0 deletions
5
src/main/java/com/seong/shoutlink/domain/domain/service/response/FindDomainLinkResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.seong.shoutlink.domain.domain.service.response; | ||
|
||
public record FindDomainLinkResponse(Long linkId, String url, long aggregationCount) { | ||
|
||
} |
24 changes: 24 additions & 0 deletions
24
...main/java/com/seong/shoutlink/domain/domain/service/response/FindDomainLinksResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package com.seong.shoutlink.domain.domain.service.response; | ||
|
||
import com.seong.shoutlink.domain.domain.service.result.DomainLinkResult; | ||
import java.util.List; | ||
|
||
public record FindDomainLinksResponse( | ||
List<FindDomainLinkResponse> links, | ||
long totalElements, | ||
boolean hasNext) { | ||
|
||
|
||
public static FindDomainLinksResponse of( | ||
List<DomainLinkResult> links, | ||
long totalElements, | ||
boolean hasNext) { | ||
List<FindDomainLinkResponse> content = links.stream() | ||
.map(link -> new FindDomainLinkResponse( | ||
link.linkId(), | ||
link.url(), | ||
link.aggregationCount()) | ||
).toList(); | ||
return new FindDomainLinksResponse(content, totalElements, hasNext); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
...ain/java/com/seong/shoutlink/domain/domain/service/result/DomainLinkPaginationResult.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.seong.shoutlink.domain.domain.service.result; | ||
|
||
import java.util.List; | ||
|
||
public record DomainLinkPaginationResult( | ||
List<DomainLinkResult> links, | ||
long totalElements, | ||
boolean hasNext) { | ||
|
||
|
||
} |
5 changes: 5 additions & 0 deletions
5
src/main/java/com/seong/shoutlink/domain/domain/service/result/DomainLinkResult.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.seong.shoutlink.domain.domain.service.result; | ||
|
||
public record DomainLinkResult(Long linkId, String url, long aggregationCount) { | ||
|
||
} |
10 changes: 10 additions & 0 deletions
10
src/main/java/com/seong/shoutlink/domain/link/repository/LinkJpaRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,20 @@ | ||
package com.seong.shoutlink.domain.link.repository; | ||
|
||
import com.seong.shoutlink.domain.domain.service.result.DomainLinkResult; | ||
import org.springframework.data.domain.Page; | ||
import org.springframework.data.domain.Pageable; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.data.jpa.repository.Query; | ||
import org.springframework.data.repository.query.Param; | ||
|
||
public interface LinkJpaRepository extends JpaRepository<LinkEntity, Long> { | ||
|
||
Page<LinkEntity> findAllByLinkBundleId(Long linkBundleId, Pageable pageable); | ||
|
||
@Query("select new com.seong.shoutlink.domain.domain.service.result.DomainLinkResult(l.linkId, l.url, count(l.url))" | ||
+ " from LinkEntity l" | ||
+ " where l.domainId = :domainId" | ||
+ " group by l.url" | ||
+ " order by count(l.url) desc") | ||
Page<DomainLinkResult> findDomainLinks(@Param("domainId") Long domainId, Pageable pageable); | ||
} |
Oops, something went wrong.