Skip to content

Commit b175946

Browse files
[EA3-78] chore : 공통 PageResponse 생성
1 parent c0ff914 commit b175946

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package grep.neogul_coder.global.response;
2+
3+
import java.util.List;
4+
import lombok.RequiredArgsConstructor;
5+
import org.springframework.data.domain.Page;
6+
7+
@RequiredArgsConstructor
8+
public class PageResponse<T> {
9+
10+
private final String url;
11+
private final Page<T> page;
12+
private final int pageButtonCnt;
13+
14+
public String url(){
15+
return url;
16+
}
17+
18+
public int currentNumber(){
19+
return page.getNumber() + 1;
20+
}
21+
22+
public int prevPage(){
23+
return Math.max(currentNumber() - 1, 1);
24+
}
25+
26+
public int nextPage(){
27+
return Math.min(currentNumber() + 1, calcTotalPage());
28+
}
29+
30+
public int startNumber(){
31+
return Math.floorDiv(page.getNumber(), pageButtonCnt) * pageButtonCnt + 1;
32+
}
33+
34+
public int endNumber(){
35+
return Math.min(startNumber() + pageButtonCnt - 1, calcTotalPage());
36+
}
37+
38+
public List<T> content(){
39+
return page.getContent();
40+
}
41+
42+
private int calcTotalPage(){
43+
int totalPage = page.getTotalPages();
44+
return totalPage == 0 ? 1 : totalPage;
45+
}
46+
}

0 commit comments

Comments
 (0)