diff --git a/lib/constants.dart b/lib/constants.dart index a804ed11c..d04c8b64c 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -1,4 +1,5 @@ // This version must be updated in tandem with the pubspec version. const String kAppVersion = '0.0.1'; +const int kMaxRecordsPerApiPage = 5000; const int kMillisecondsToRefreshData = 1000 * 60 * 15; // 15 minutes \ No newline at end of file diff --git a/lib/data/repositories/client_repository.dart b/lib/data/repositories/client_repository.dart index de305bb5c..fa98d8c53 100644 --- a/lib/data/repositories/client_repository.dart +++ b/lib/data/repositories/client_repository.dart @@ -18,7 +18,7 @@ class ClientRepository { Future> loadList(CompanyEntity company, AuthState auth) async { final response = await webClient.get( - auth.url + '/clients?per_page=500', company.token); + auth.url + '/clients', company.token); ClientListResponse clientResponse = serializers.deserializeWith( ClientListResponse.serializer, response); diff --git a/lib/data/repositories/invoice_repository.dart b/lib/data/repositories/invoice_repository.dart index 490062dbd..d99c5a062 100644 --- a/lib/data/repositories/invoice_repository.dart +++ b/lib/data/repositories/invoice_repository.dart @@ -18,7 +18,7 @@ class InvoiceRepository { Future> loadList(CompanyEntity company, AuthState auth) async { final response = await webClient.get( - auth.url + '/invoices?include=invitations&per_page=500', company.token); + auth.url + '/invoices?include=invitations', company.token); InvoiceListResponse invoiceResponse = serializers.deserializeWith( InvoiceListResponse.serializer, response); diff --git a/lib/data/repositories/product_repository.dart b/lib/data/repositories/product_repository.dart index 4ad1c8e15..49f3df0b8 100644 --- a/lib/data/repositories/product_repository.dart +++ b/lib/data/repositories/product_repository.dart @@ -18,7 +18,7 @@ class ProductRepository { Future> loadList(CompanyEntity company, AuthState auth) async { final response = await webClient.get( - auth.url + '/products?per_page=500', company.token); + auth.url + '/products', company.token); ProductListResponse productResponse = serializers.deserializeWith( ProductListResponse.serializer, response); diff --git a/lib/data/web_client.dart b/lib/data/web_client.dart index de1c4f6f6..03b15a81f 100644 --- a/lib/data/web_client.dart +++ b/lib/data/web_client.dart @@ -2,12 +2,17 @@ import 'dart:async'; import 'dart:core'; import 'dart:convert'; import 'package:http/http.dart' as http; +import 'package:invoiceninja/constants.dart'; class WebClient { const WebClient(); Future get(String url, String token) async { + + if (! url.contains('?')) url += '?'; + url += '&per_page=${kMaxRecordsPerApiPage}'; + final http.Response response = await http.Client().get( url, headers: {