Optimize fetching exercises from the server

This might be the reason behind wger-project/wger#2028 since depending on the routine
the server could get hammered with requests and one (or other unrelated ones) fail.
Even if this is not the case, being a bit more reserved here is still a good idea.
This commit is contained in:
Roland Geider
2025-08-27 18:52:54 +02:00
parent ec57388ed9
commit a853e45107
11 changed files with 153 additions and 70 deletions

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],