Add the newly created session to the routine

This commit is contained in:
Roland Geider
2025-01-26 15:07:37 +01:00
parent 123b45e6b3
commit b4f8a59a70
12 changed files with 67 additions and 32 deletions

View File

@@ -30,7 +30,7 @@ class WorkoutSessionApi {
@JsonKey(required: false, includeToJson: false, defaultValue: [])
List<Log> logs = [];
WorkoutSessionApi();
WorkoutSessionApi({required this.session, this.logs = const []});
// Boilerplate
factory WorkoutSessionApi.fromJson(Map<String, dynamic> json) =>

View File

@@ -11,12 +11,13 @@ WorkoutSessionApi _$WorkoutSessionApiFromJson(Map<String, dynamic> json) {
json,
requiredKeys: const ['session'],
);
return WorkoutSessionApi()
..session = WorkoutSession.fromJson(json['session'] as Map<String, dynamic>)
..logs = (json['logs'] as List<dynamic>?)
return WorkoutSessionApi(
session: WorkoutSession.fromJson(json['session'] as Map<String, dynamic>),
logs: (json['logs'] as List<dynamic>?)
?.map((e) => Log.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
[],
);
}
Map<String, dynamic> _$WorkoutSessionApiToJson(WorkoutSessionApi instance) => <String, dynamic>{

View File

@@ -454,7 +454,6 @@ class RoutinesProvider with ChangeNotifier {
baseProvider.makeUrl(_daysUrlPath),
);
day = Day.fromJson(data);
day.slots = [];
final routine = findById(day.routineId);
routine.days.add(day);
if (refresh) {
@@ -676,12 +675,15 @@ class RoutinesProvider with ChangeNotifier {
return sessions;
}
Future<WorkoutSession> addSession(WorkoutSession session) async {
Future<WorkoutSession> addSession(WorkoutSession session, int routineId) async {
final data = await baseProvider.post(
session.toJson(),
baseProvider.makeUrl(_sessionUrlPath),
);
final newSession = WorkoutSession.fromJson(data);
final routine = findById(routineId);
routine.sessions.add(WorkoutSessionApi(session: newSession));
notifyListeners();
return newSession;
}

View File

@@ -921,7 +921,7 @@ class _SessionPageState extends State<SessionPage> {
// Save the entry on the server
try {
if (widget._session.id == null) {
await routinesProvider.addSession(widget._session);
await routinesProvider.addSession(widget._session, widget._routine.id!);
} else {
await routinesProvider.editSession(widget._session);
}

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);

View File

@@ -427,12 +427,16 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<List<_i10.WorkoutSession>>);
@override
_i13.Future<_i10.WorkoutSession> addSession(_i10.WorkoutSession? session) => (super.noSuchMethod(
Invocation.method(#addSession, [session]),
_i13.Future<_i10.WorkoutSession> addSession(
_i10.WorkoutSession? session,
int? routineId,
) =>
(super.noSuchMethod(
Invocation.method(#addSession, [session, routineId]),
returnValue: _i13.Future<_i10.WorkoutSession>.value(
_FakeWorkoutSession_8(
this,
Invocation.method(#addSession, [session]),
Invocation.method(#addSession, [session, routineId]),
),
),
) as _i13.Future<_i10.WorkoutSession>);