Reduce hosted max records per page to 5000

This commit is contained in:
Hillel Coren 2022-11-15 08:24:26 +02:00
parent f2a8de65f7
commit dce576c9e0
14 changed files with 26 additions and 33 deletions

View File

@ -168,8 +168,7 @@ const int kMaxNumberOfHistory = 50;
const int kMaxPostSeconds = 60;
const int kMaxRawPostSeconds = 300;
const int kMaxEntitiesPerBulkAction = 100;
const int kHostedRecordsPerPage = 10000;
const int kSelfhostedRecordsPerPage = 5000;
const int kMaxRecordsPerPage = 5000;
const int kMillisecondsToTimerRefreshData = 1000 * 60 * 5; // 5 minutes
const int kMillisecondsToRefreshData = 1000 * 60 * 15; // 15 minutes
const int kUpdatedAtBufferSeconds = 600;

View File

@ -39,9 +39,9 @@ class ClientRepository {
}
Future<BuiltList<ClientEntity>> loadList(
Credentials credentials, int page, int recordsPerPage) async {
Credentials credentials, int page) async {
final String url =
credentials.url + '/clients?per_page=$recordsPerPage&page=$page';
credentials.url + '/clients?per_page=$kMaxRecordsPerPage&page=$page';
final dynamic response = await webClient.get(url, credentials.token);

View File

@ -38,9 +38,9 @@ class InvoiceRepository {
}
Future<BuiltList<InvoiceEntity>> loadList(Credentials credentials, int page,
int createdAt, bool filterDeleted, int recordsPerPage) async {
int createdAt, bool filterDeleted) async {
String url = credentials.url +
'/invoices?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
'/invoices?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
if (filterDeleted) {
url += '&filter_deleted_clients=true';

View File

@ -37,9 +37,9 @@ class PaymentRepository {
}
Future<BuiltList<PaymentEntity>> loadList(Credentials credentials, int page,
int createdAt, bool filterDeleted, int recordsPerPage) async {
int createdAt, bool filterDeleted) async {
String url = credentials.url +
'/payments?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
'/payments?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
if (filterDeleted) {
url += '&filter_deleted_clients=true';

View File

@ -38,9 +38,9 @@ class ProductRepository {
}
Future<BuiltList<ProductEntity>> loadList(
Credentials credentials, int page, int recordsPerPage) async {
Credentials credentials, int page) async {
final url =
credentials.url + '/products?per_page=$recordsPerPage&page=$page';
credentials.url + '/products?per_page=$kMaxRecordsPerPage&page=$page';
final dynamic response = await webClient.get(url, credentials.token);

View File

@ -31,10 +31,9 @@ class PurchaseOrderRepository {
int page,
int createdAt,
//bool filterDeleted,
int recordsPerPage,
) async {
final url = credentials.url +
'/purchase_orders?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
'/purchase_orders?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
/*
if (filterDeleted) {

View File

@ -38,9 +38,9 @@ class QuoteRepository {
}
Future<BuiltList<InvoiceEntity>> loadList(Credentials credentials, int page,
int createdAt, bool filterDeleted, int recordsPerPage) async {
int createdAt, bool filterDeleted) async {
String url = credentials.url +
'/quotes?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
'/quotes?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
if (filterDeleted) {
url += '&filter_deleted_clients=true';

View File

@ -774,9 +774,6 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
bool get reportErrors => account?.reportErrors ?? false;
int get recordsPerPage =>
isHosted ? kHostedRecordsPerPage : kSelfhostedRecordsPerPage;
bool get isHosted => account == null ? authState.isHosted : account.isHosted;
bool get isSelfHosted => !isHosted;

View File

@ -1,5 +1,6 @@
// Flutter imports:
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/constants.dart';
// Package imports:
import 'package:redux/redux.dart';
@ -295,11 +296,9 @@ Middleware<AppState> _loadClients(ClientRepository repository) {
final state = store.state;
store.dispatch(LoadClientsRequest());
repository
.loadList(state.credentials, action.page, state.recordsPerPage)
.then((data) {
repository.loadList(state.credentials, action.page).then((data) {
store.dispatch(LoadClientsSuccess(data));
if (data.length == state.recordsPerPage) {
if (data.length == kMaxRecordsPerPage) {
store.dispatch(LoadClients(
completer: action.completer,
page: action.page + 1,

View File

@ -1,5 +1,6 @@
// Flutter imports:
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/redux/recurring_invoice/recurring_invoice_actions.dart';
// Package imports:
@ -441,12 +442,11 @@ Middleware<AppState> _loadInvoices(InvoiceRepository repository) {
action.page,
state.createdAtLimit,
state.filterDeletedClients,
state.recordsPerPage,
)
.then((data) {
store.dispatch(LoadInvoicesSuccess(data));
if (data.length == state.recordsPerPage) {
if (data.length == kMaxRecordsPerPage) {
store.dispatch(LoadInvoices(
completer: action.completer,
page: action.page + 1,

View File

@ -1,5 +1,6 @@
// Flutter imports:
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
// Package imports:
@ -306,11 +307,10 @@ Middleware<AppState> _loadPayments(PaymentRepository repository) {
action.page,
state.createdAtLimit,
state.filterDeletedClients,
state.recordsPerPage,
)
.then((data) {
store.dispatch(LoadPaymentsSuccess(data));
if (data.length == state.recordsPerPage) {
if (data.length == kMaxRecordsPerPage) {
store.dispatch(LoadPayments(
completer: action.completer,
page: action.page + 1,

View File

@ -1,5 +1,6 @@
// Flutter imports:
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/constants.dart';
// Package imports:
import 'package:redux/redux.dart';
@ -239,11 +240,9 @@ Middleware<AppState> _loadProducts(ProductRepository repository) {
final state = store.state;
store.dispatch(LoadProductsRequest());
repository
.loadList(state.credentials, action.page, state.recordsPerPage)
.then((data) {
repository.loadList(state.credentials, action.page).then((data) {
store.dispatch(LoadProductsSuccess(data));
if (data.length == state.recordsPerPage) {
if (data.length == kMaxRecordsPerPage) {
store.dispatch(LoadProducts(
completer: action.completer,
page: action.page + 1,

View File

@ -1,5 +1,6 @@
// Flutter imports:
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/data/repositories/purchase_order_repository.dart';
import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart';
import 'package:invoiceninja_flutter/redux/purchase_order/purchase_order_actions.dart';
@ -530,11 +531,10 @@ Middleware<AppState> _loadPurchaseOrders(PurchaseOrderRepository repository) {
action.page,
state.createdAtLimit,
//state.filterDeletedClients,
state.recordsPerPage,
)
.then((data) {
store.dispatch(LoadPurchaseOrdersSuccess(data));
if (data.length == state.recordsPerPage) {
if (data.length == kMaxRecordsPerPage) {
store.dispatch(LoadPurchaseOrders(
completer: action.completer,
page: action.page + 1,

View File

@ -1,5 +1,6 @@
// Flutter imports:
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/constants.dart';
// Package imports:
import 'package:redux/redux.dart';
@ -445,11 +446,10 @@ Middleware<AppState> _loadQuotes(QuoteRepository repository) {
action.page,
state.createdAtLimit,
state.filterDeletedClients,
state.recordsPerPage,
)
.then((data) {
store.dispatch(LoadQuotesSuccess(data));
if (data.length == state.recordsPerPage) {
if (data.length == kMaxRecordsPerPage) {
store.dispatch(LoadQuotes(
completer: action.completer,
page: action.page + 1,