Transactions
This commit is contained in:
parent
ee5570abf5
commit
8e0249f043
|
|
@ -70,15 +70,15 @@ class TransactionRepository {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final TransactionItemResponse transactionResponse = serializers
|
final TransactionListResponse transactionResponse = serializers
|
||||||
.deserializeWith(TransactionItemResponse.serializer, response);
|
.deserializeWith(TransactionListResponse.serializer, response);
|
||||||
|
|
||||||
return transactionResponse.data;
|
return transactionResponse.data.first;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<TransactionEntity> convertToExpense(
|
Future<BuiltList<TransactionEntity>> convertToExpense(
|
||||||
Credentials credentials,
|
Credentials credentials,
|
||||||
String transactionId,
|
List<String> transactionIds,
|
||||||
String vendorId,
|
String vendorId,
|
||||||
String categoryId,
|
String categoryId,
|
||||||
) async {
|
) async {
|
||||||
|
|
@ -88,19 +88,19 @@ class TransactionRepository {
|
||||||
credentials.token,
|
credentials.token,
|
||||||
data: json.encode(
|
data: json.encode(
|
||||||
{
|
{
|
||||||
'transactions': [
|
'transactions': transactionIds
|
||||||
{
|
.map((transactionId) => {
|
||||||
'id': transactionId,
|
'id': transactionId,
|
||||||
'vendor_id': vendorId,
|
'vendor_id': vendorId,
|
||||||
'ninja_category_id': categoryId,
|
'ninja_category_id': categoryId,
|
||||||
}
|
})
|
||||||
]
|
.toList()
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final TransactionItemResponse transactionResponse = serializers
|
final TransactionListResponse transactionResponse = serializers
|
||||||
.deserializeWith(TransactionItemResponse.serializer, response);
|
.deserializeWith(TransactionListResponse.serializer, response);
|
||||||
|
|
||||||
return transactionResponse.data;
|
return transactionResponse.data;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -218,28 +218,28 @@ class ConvertTransactionToPaymentFailure implements StopSaving {
|
||||||
final dynamic error;
|
final dynamic error;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ConvertTransactionToExpenseRequest implements StartSaving {
|
class ConvertTransactionsToExpensesRequest implements StartSaving {
|
||||||
ConvertTransactionToExpenseRequest(
|
ConvertTransactionsToExpensesRequest(
|
||||||
this.completer,
|
this.completer,
|
||||||
this.transactionId,
|
this.transactionIds,
|
||||||
this.vendorId,
|
this.vendorId,
|
||||||
this.categoryId,
|
this.categoryId,
|
||||||
);
|
);
|
||||||
|
|
||||||
final Completer completer;
|
final Completer completer;
|
||||||
final String transactionId;
|
final List<String> transactionIds;
|
||||||
final String vendorId;
|
final String vendorId;
|
||||||
final String categoryId;
|
final String categoryId;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ConvertTransactionToExpenseSuccess implements StopSaving, PersistData {
|
class ConvertTransactionsToExpensesSuccess implements StopSaving, PersistData {
|
||||||
ConvertTransactionToExpenseSuccess(this.transaction);
|
ConvertTransactionsToExpensesSuccess(this.transactions);
|
||||||
|
|
||||||
final TransactionEntity transaction;
|
final BuiltList<TransactionEntity> transactions;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ConvertTransactionToExpenseFailure implements StopSaving {
|
class ConvertTransactionsToExpensesFailure implements StopSaving {
|
||||||
ConvertTransactionToExpenseFailure(this.error);
|
ConvertTransactionsToExpensesFailure(this.error);
|
||||||
|
|
||||||
final dynamic error;
|
final dynamic error;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
|
|
@ -41,7 +42,7 @@ List<Middleware<AppState>> createStoreTransactionsMiddleware([
|
||||||
TypedMiddleware<AppState, ConvertTransactionsRequest>(convertTransactions),
|
TypedMiddleware<AppState, ConvertTransactionsRequest>(convertTransactions),
|
||||||
TypedMiddleware<AppState, ConvertTransactionToPaymentRequest>(
|
TypedMiddleware<AppState, ConvertTransactionToPaymentRequest>(
|
||||||
convertToPayment),
|
convertToPayment),
|
||||||
TypedMiddleware<AppState, ConvertTransactionToExpenseRequest>(
|
TypedMiddleware<AppState, ConvertTransactionsToExpensesRequest>(
|
||||||
convertToExpense),
|
convertToExpense),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
@ -225,23 +226,23 @@ Middleware<AppState> _convertToPayment(TransactionRepository repository) {
|
||||||
|
|
||||||
Middleware<AppState> _convertToExpense(TransactionRepository repository) {
|
Middleware<AppState> _convertToExpense(TransactionRepository repository) {
|
||||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||||
final action = dynamicAction as ConvertTransactionToExpenseRequest;
|
final action = dynamicAction as ConvertTransactionsToExpensesRequest;
|
||||||
repository
|
repository
|
||||||
.convertToExpense(
|
.convertToExpense(
|
||||||
store.state.credentials,
|
store.state.credentials,
|
||||||
action.transactionId,
|
action.transactionIds,
|
||||||
action.vendorId,
|
action.vendorId,
|
||||||
action.categoryId,
|
action.categoryId,
|
||||||
)
|
)
|
||||||
.then((TransactionEntity transaction) {
|
.then((BuiltList<TransactionEntity> transactions) {
|
||||||
store.dispatch(ConvertTransactionToExpenseSuccess(transaction));
|
store.dispatch(ConvertTransactionsToExpensesSuccess(transactions));
|
||||||
store.dispatch(RefreshData());
|
store.dispatch(RefreshData());
|
||||||
if (action.completer != null) {
|
if (action.completer != null) {
|
||||||
action.completer.complete(null);
|
action.completer.complete(null);
|
||||||
}
|
}
|
||||||
}).catchError((Object error) {
|
}).catchError((Object error) {
|
||||||
print(error);
|
print(error);
|
||||||
store.dispatch(ConvertTransactionToExpenseFailure(error));
|
store.dispatch(ConvertTransactionsToExpensesFailure(error));
|
||||||
if (action.completer != null) {
|
if (action.completer != null) {
|
||||||
action.completer.completeError(error);
|
action.completer.completeError(error);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -209,7 +209,7 @@ final transactionsReducer = combineReducers<TransactionState>([
|
||||||
TypedReducer<TransactionState, SaveTransactionSuccess>(_updateTransaction),
|
TypedReducer<TransactionState, SaveTransactionSuccess>(_updateTransaction),
|
||||||
TypedReducer<TransactionState, ConvertTransactionToPaymentSuccess>(
|
TypedReducer<TransactionState, ConvertTransactionToPaymentSuccess>(
|
||||||
_convertTransactionToPayment),
|
_convertTransactionToPayment),
|
||||||
TypedReducer<TransactionState, ConvertTransactionToExpenseSuccess>(
|
TypedReducer<TransactionState, ConvertTransactionsToExpensesSuccess>(
|
||||||
_convertTransactionToExpense),
|
_convertTransactionToExpense),
|
||||||
//TypedReducer<TransactionState, ConvertTransactionsSuccess>(_convertTransactions),
|
//TypedReducer<TransactionState, ConvertTransactionsSuccess>(_convertTransactions),
|
||||||
TypedReducer<TransactionState, AddTransactionSuccess>(_addTransaction),
|
TypedReducer<TransactionState, AddTransactionSuccess>(_addTransaction),
|
||||||
|
|
@ -272,9 +272,8 @@ TransactionState _convertTransactionToPayment(TransactionState transactionState,
|
||||||
}
|
}
|
||||||
|
|
||||||
TransactionState _convertTransactionToExpense(TransactionState transactionState,
|
TransactionState _convertTransactionToExpense(TransactionState transactionState,
|
||||||
ConvertTransactionToExpenseSuccess action) {
|
ConvertTransactionsToExpensesSuccess action) {
|
||||||
return transactionState
|
return transactionState.loadTransactions(action.transactions);
|
||||||
.rebuild((b) => b..map[action.transaction.id] = action.transaction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -34,9 +34,9 @@ abstract class TransactionState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TransactionState loadTransactions(BuiltList<TransactionEntity> clients) {
|
TransactionState loadTransactions(BuiltList<TransactionEntity> transactions) {
|
||||||
final map = Map<String, TransactionEntity>.fromIterable(
|
final map = Map<String, TransactionEntity>.fromIterable(
|
||||||
clients,
|
transactions,
|
||||||
key: (dynamic item) => item.id,
|
key: (dynamic item) => item.id,
|
||||||
value: (dynamic item) => item,
|
value: (dynamic item) => item,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -83,10 +83,10 @@ class TransactionViewVM {
|
||||||
},
|
},
|
||||||
onConvertToExpense: (context, transactionId, vendorId, categoryId) {
|
onConvertToExpense: (context, transactionId, vendorId, categoryId) {
|
||||||
store.dispatch(
|
store.dispatch(
|
||||||
ConvertTransactionToExpenseRequest(
|
ConvertTransactionsToExpensesRequest(
|
||||||
snackBarCompleter<Null>(
|
snackBarCompleter<Null>(
|
||||||
context, AppLocalization.of(context).convertedTransaction),
|
context, AppLocalization.of(context).convertedTransaction),
|
||||||
transactionId,
|
[transactionId],
|
||||||
vendorId,
|
vendorId,
|
||||||
categoryId,
|
categoryId,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue