diff --git a/lib/data/repositories/settings_repository.dart b/lib/data/repositories/settings_repository.dart index 9b2f1ff65..cc5b9be89 100644 --- a/lib/data/repositories/settings_repository.dart +++ b/lib/data/repositories/settings_repository.dart @@ -8,8 +8,8 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/web_client.dart'; -class ClientRepository { - const ClientRepository({ +class SettingsRepository { + const SettingsRepository({ this.webClient = const WebClient(), }); diff --git a/lib/redux/settings/settings_middleware.dart b/lib/redux/settings/settings_middleware.dart index 4e37c8e2e..0550f82a4 100644 --- a/lib/redux/settings/settings_middleware.dart +++ b/lib/redux/settings/settings_middleware.dart @@ -1,3 +1,4 @@ +import 'package:invoiceninja_flutter/data/repositories/settings_repository.dart'; import 'package:invoiceninja_flutter/redux/app/app_middleware.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; @@ -7,9 +8,11 @@ import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; import 'package:flutter/material.dart'; -List> createStoreSettingsMiddleware() { +List> createStoreSettingsMiddleware([ + SettingsRepository repository = const SettingsRepository(), +]) { final viewSettings = _viewSettings(); - final saveSettings = _saveSettings(); + final saveSettings = _saveSettings(repository); return [ TypedMiddleware(viewSettings), @@ -38,10 +41,20 @@ Middleware _viewSettings() { }; } -Middleware _saveSettings() { +Middleware _saveSettings(SettingsRepository settingsRepository) { return (Store store, dynamic dynamicAction, NextDispatcher next) { final action = dynamicAction as SaveSettingsRequest; + settingsRepository + .saveData(store.state.credentials, action.settings) + .then((response) { + print('Done: $response'); + }).catchError((Object error) { + print(error); + store.dispatch(SaveSettingsFailure(error)); + action.completer.completeError(error); + }); + next(action); }; }