mystash
Version:
Personal finance app
72 lines (67 loc) • 1.96 kB
JavaScript
import { RSAA } from 'redux-api-middleware';
import {
TRANSACTION_READ_REQUEST,
TRANSACTION_READ_SUCCESS,
TRANSACTION_READ_FAILURE,
TRANSACTION_CREATE_REQUEST,
TRANSACTION_CREATE_SUCCESS,
TRANSACTION_CREATE_FAILURE,
TRANSACTION_UPDATE_REQUEST,
TRANSACTION_UPDATE_SUCCESS,
TRANSACTION_UPDATE_FAILURE,
TRANSACTION_DELETE_REQUEST,
TRANSACTION_DELETE_SUCCESS,
TRANSACTION_DELETE_FAILURE,
} from '../actions';
export const read = walletId => ({
[RSAA]: {
endpoint: `/transaction/in/${walletId}`,
method: 'GET',
headers: state => ({
'Content-Type': 'application/json',
Authorization: `Bearer ${state.user.token}`,
}),
types: [{
type: TRANSACTION_READ_REQUEST,
payload: walletId,
}, TRANSACTION_READ_SUCCESS, TRANSACTION_READ_FAILURE],
},
});
export const create = transaction => ({
[RSAA]: {
endpoint: '/transaction',
method: 'POST',
headers: state => ({
'Content-Type': 'application/json',
Authorization: `Bearer ${state.user.token}`,
}),
body: JSON.stringify(transaction),
types: [TRANSACTION_CREATE_REQUEST, TRANSACTION_CREATE_SUCCESS, TRANSACTION_CREATE_FAILURE],
},
});
export const update = transaction => ({
[RSAA]: {
endpoint: `/transaction/${transaction.id}`,
method: 'PUT',
headers: state => ({
'Content-Type': 'application/json',
Authorization: `Bearer ${state.user.token}`,
}),
body: JSON.stringify(transaction),
types: [TRANSACTION_UPDATE_REQUEST, TRANSACTION_UPDATE_SUCCESS, TRANSACTION_UPDATE_FAILURE],
},
});
export const deleteTransaction = id => ({
[RSAA]: {
endpoint: `/transaction/${id}`,
method: 'DELETE',
headers: state => ({
'Content-Type': 'application/json',
Authorization: `Bearer ${state.user.token}`,
}),
types: [{
type: TRANSACTION_DELETE_REQUEST,
payload: id,
}, TRANSACTION_DELETE_SUCCESS, TRANSACTION_DELETE_FAILURE],
},
});