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