Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

paymentSaga.js 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import { all, call, put, takeLatest } from "@redux-saga/core/effects";
  2. import {
  3. PAYMENTS_ADD,
  4. PAYMENTS_DELETE,
  5. PAYMENTS_EDIT,
  6. PAYMENTS_FETCH,
  7. } from "../actions/payment/paymentActionConstants";
  8. import {
  9. fetchPaymentsError,
  10. fetchPaymentsSuccess,
  11. setPayments,
  12. } from "../actions/payment/paymentActions";
  13. import {
  14. attemptAddNewPayment,
  15. attemptDeletePayment,
  16. attemptEditPayment,
  17. attemptFetchPayments,
  18. } from "../../request/paymentsRequest";
  19. import { fetchPayments } from "../actions/payment/paymentActions";
  20. function* fetchAllPayments() {
  21. try {
  22. const data = yield call(attemptFetchPayments);
  23. if (!data?.data) throw new Error();
  24. yield put(setPayments(data.data));
  25. yield put(fetchPaymentsSuccess());
  26. } catch (e) {
  27. yield put(fetchPaymentsError());
  28. }
  29. }
  30. function* createPayment(payload) {
  31. try {
  32. yield call(attemptAddNewPayment, payload.payload);
  33. yield put(fetchPayments());
  34. if (payload.payload.handleApiResponseSuccess) {
  35. yield call(payload.payload.handleApiResponseSuccess);
  36. }
  37. } catch (e) {
  38. console.dir(e);
  39. }
  40. }
  41. function* editPayment(payload) {
  42. try {
  43. yield call(attemptEditPayment, {
  44. id: payload.payload.id,
  45. body: {
  46. type: payload.payload.type,
  47. payerName: payload.payload.payerName,
  48. userId: payload.payload.userId,
  49. offerId: payload.payload.offerId,
  50. date: payload.payload.date,
  51. },
  52. });
  53. if (payload.payload.handleApiResponseSuccess) {
  54. yield call(payload.payload.handleApiResponseSuccess);
  55. }
  56. } catch (e) {
  57. console.dir(e);
  58. }
  59. }
  60. function* deletePayment(payload) {
  61. try {
  62. yield call(attemptDeletePayment, { id: payload.payload.id });
  63. if (payload.payload.handleApiDeletePaymentResponseSuccess) {
  64. yield call(payload.payload.handleApiDeletePaymentResponseSuccess);
  65. }
  66. } catch (e) {
  67. console.dir(e);
  68. }
  69. }
  70. export default function* paymentSaga() {
  71. yield all([
  72. takeLatest(PAYMENTS_FETCH, fetchAllPayments),
  73. takeLatest(PAYMENTS_ADD, createPayment),
  74. takeLatest(PAYMENTS_EDIT, editPayment),
  75. takeLatest(PAYMENTS_DELETE, deletePayment),
  76. ]);
  77. }