This commit is contained in:
Hillel Coren 2019-10-02 21:46:37 +03:00
parent 7f211d3919
commit 5be795e717
2 changed files with 18 additions and 5 deletions

View File

@ -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(),
});

View File

@ -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<Middleware<AppState>> createStoreSettingsMiddleware() {
List<Middleware<AppState>> createStoreSettingsMiddleware([
SettingsRepository repository = const SettingsRepository(),
]) {
final viewSettings = _viewSettings();
final saveSettings = _saveSettings();
final saveSettings = _saveSettings(repository);
return [
TypedMiddleware<AppState, ViewSettings>(viewSettings),
@ -38,10 +41,20 @@ Middleware<AppState> _viewSettings() {
};
}
Middleware<AppState> _saveSettings() {
Middleware<AppState> _saveSettings(SettingsRepository settingsRepository) {
return (Store<AppState> 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);
};
}