Skip to content

Commit 7e0fbc2

Browse files
authored
Update pagination logic and remove unused SettingProvider (#98)
1 parent b1fa679 commit 7e0fbc2

File tree

4 files changed

+34
-7
lines changed

4 files changed

+34
-7
lines changed

fintrack-api/src/main/java/com/jongsoft/finance/rest/account/AccountTransactionResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ ResultPageResponse<TransactionResponse> search(
8080
.range(Dates.range(
8181
request.dateRange().start(),
8282
request.dateRange().end()))
83-
.page(request.getPage(), settingProvider.getPageSize());
83+
.page(request.getPage(), Integer.MAX_VALUE);
8484

8585
if (request.text() != null) {
8686
command.description(request.text(), false);

fintrack-api/src/main/java/com/jongsoft/finance/rest/transaction/TransactionResource.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import com.jongsoft.finance.messaging.EventBus;
99
import com.jongsoft.finance.providers.AccountProvider;
1010
import com.jongsoft.finance.providers.AccountTypeProvider;
11-
import com.jongsoft.finance.providers.SettingProvider;
1211
import com.jongsoft.finance.providers.TransactionProvider;
1312
import com.jongsoft.finance.rest.model.ResultPageResponse;
1413
import com.jongsoft.finance.rest.model.TransactionResponse;
@@ -42,16 +41,14 @@
4241
@Secured(AuthenticationRoles.IS_AUTHENTICATED)
4342
public class TransactionResource {
4443

45-
private final SettingProvider settingProvider;
4644
private final TransactionProvider transactionProvider;
4745
private final AccountProvider accountProvider;
4846
private final FilterFactory filterFactory;
4947
private final AccountTypeProvider accountTypeProvider;
5048
private final RuntimeResource runtimeResource;
5149
private final AuthenticationFacade authenticationFacade;
5250

53-
public TransactionResource(SettingProvider settingProvider, TransactionProvider transactionProvider, AccountProvider accountProvider, FilterFactory filterFactory, AccountTypeProvider accountTypeProvider, RuntimeResource runtimeResource, AuthenticationFacade authenticationFacade) {
54-
this.settingProvider = settingProvider;
51+
public TransactionResource(TransactionProvider transactionProvider, AccountProvider accountProvider, FilterFactory filterFactory, AccountTypeProvider accountTypeProvider, RuntimeResource runtimeResource, AuthenticationFacade authenticationFacade) {
5552
this.transactionProvider = transactionProvider;
5653
this.accountProvider = accountProvider;
5754
this.filterFactory = filterFactory;
@@ -71,7 +68,7 @@ ResultPageResponse<TransactionResponse> search(@Valid @Body TransactionSearchReq
7168
.range(Dates.range(
7269
request.getDateRange().start(),
7370
request.getDateRange().end()))
74-
.page(request.getPage(), settingProvider.getPageSize());
71+
.page(request.getPage(), Integer.MAX_VALUE);
7572

7673
Control.Option(request.getCategory())
7774
.map(e -> new EntityRef(e.id()))

jpa-repository/src/main/java/com/jongsoft/finance/jpa/query/JpaQuery.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,12 @@ public Optional<E> singleResult() {
194194
*/
195195
public ResultPage<E> paged() {
196196
var countHql = "SELECT count(DISTINCT e.id) %s".formatted(generateHql(false));
197-
var numberOfRecords = createQuery(Long.class, countHql).getSingleResult();
197+
var query = entityManager.createQuery(countHql, Long.class);
198+
for (var condition : conditions()) {
199+
condition.addParameters(query);
200+
}
201+
202+
var numberOfRecords = query.getSingleResult();
198203
var limit = limitRows == null ? Integer.MAX_VALUE : limitRows;
199204
if (numberOfRecords > 0) {
200205
// only run the actual query if we had hits in the count query.

jpa-repository/src/test/java/com/jongsoft/finance/jpa/account/AccountProviderJpaIT.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,31 @@ void lookup_name() {
9292
Assertions.assertThat(account.getUser()).isEqualTo(new UserIdentifier("demo-user"));
9393
}
9494

95+
@Test
96+
void lookup_page1() {
97+
var filter = filterFactory.account()
98+
.page(0, 1);
99+
100+
var check = accountProvider.lookup(filter);
101+
102+
Assertions.assertThat(check.total()).isEqualTo(1);
103+
Assertions.assertThat(check.content())
104+
.hasSize(1)
105+
.extracting("name")
106+
.contains("Account One");
107+
}
108+
109+
@Test
110+
void lookup_page2() {
111+
var filter = filterFactory.account()
112+
.page(1, 1);
113+
114+
var check = accountProvider.lookup(filter);
115+
116+
Assertions.assertThat(check.total()).isEqualTo(1);
117+
Assertions.assertThat(check.content()).isEmpty();
118+
}
119+
95120
@Test
96121
void lookup_partialName() {
97122
var filter = filterFactory.account()

0 commit comments

Comments
 (0)