選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

usersSaga.js 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import { all, call, put, takeEvery } from "redux-saga/effects";
  2. import { JWT_TOKEN } from "../../constants/localStorage";
  3. import { addHeaderToken } from "../../request";
  4. import {
  5. deleteUserRequest,
  6. enableUserRequest,
  7. getAllUsers,
  8. inviteUserRequest,
  9. userDetailsRequest,
  10. } from "../../request/usersRequest";
  11. import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers";
  12. import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper";
  13. import {
  14. DELETE_USER_REQ,
  15. FETCH_USERS_REQ,
  16. TOGGLE_USER_ENABLE_REQ,
  17. USER_DETAILS_REQ,
  18. USER_INVITE_REQ,
  19. } from "../actions/users/usersActionConstants";
  20. import {
  21. deleteStateUser,
  22. deleteUserError,
  23. inviteUserError,
  24. inviteUserSuccess,
  25. setEnableUsers,
  26. setEnableUsersError,
  27. setUsers,
  28. setUsersError,
  29. stateUserDetailsSuccess,
  30. toggleSingleUser,
  31. userDetailsError,
  32. } from "../actions/users/usersActions";
  33. export function* getUsers() {
  34. try {
  35. const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN);
  36. yield call(addHeaderToken, JwtToken);
  37. const result = yield call(getAllUsers);
  38. yield put(setUsers(result.data));
  39. } catch (error) {
  40. if (error.response && error.response.data) {
  41. const errorMessage = yield call(rejectErrorCodeHelper, error);
  42. yield put(setUsersError(errorMessage));
  43. }
  44. }
  45. }
  46. export function* enableUser({ payload }) {
  47. try {
  48. const result = yield call(enableUserRequest, payload.id);
  49. yield put(setEnableUsers(result.data));
  50. yield put(toggleSingleUser());
  51. } catch (error) {
  52. if (error.response && error.response.data) {
  53. const errorMessage = yield call(rejectErrorCodeHelper, error);
  54. yield put(setEnableUsersError(errorMessage));
  55. }
  56. }
  57. }
  58. export function* deleteUser({ payload }) {
  59. try {
  60. const result = yield call(deleteUserRequest, payload.id);
  61. // linija koda ispod nece biti potrebna
  62. // jer nakon brisanja svakako idemo na
  63. // users page gde se setuje state ponovo sa novim vrednostima
  64. yield put(deleteStateUser(result.data));
  65. if(payload.handleApiResponseSuccess){
  66. yield call(payload.handleApiResponseSuccess)
  67. }
  68. } catch (error) {
  69. if (error.response && error.response.data) {
  70. const errorMessage = yield call(rejectErrorCodeHelper, error);
  71. yield put(deleteUserError(errorMessage));
  72. }
  73. }
  74. }
  75. export function* userDetails({ payload }) {
  76. try {
  77. const result = yield call(userDetailsRequest, payload.id);
  78. // console.log(result)
  79. yield put(stateUserDetailsSuccess(result.data));
  80. if(payload.handleApiResponseSuccess){
  81. yield call(payload.handleApiResponseSuccess)
  82. }
  83. } catch (error) {
  84. if (error.response && error.response.data) {
  85. const errorMessage = yield call(rejectErrorCodeHelper, error);
  86. yield put(userDetailsError(errorMessage));
  87. }
  88. }
  89. }
  90. export function* invite({ payload }) {
  91. try {
  92. const result = yield call(inviteUserRequest, payload.invite);
  93. console.log(result)
  94. yield put(inviteUserSuccess());
  95. if(payload.handleApiResponseSuccess){
  96. yield call(payload.handleApiResponseSuccess)
  97. }
  98. } catch (error) {
  99. if (error.response && error.response.data) {
  100. const errorMessage = yield call(rejectErrorCodeHelper, error);
  101. yield put(inviteUserError(errorMessage));
  102. }
  103. }
  104. }
  105. export default function* usersSaga() {
  106. yield all([
  107. takeEvery(FETCH_USERS_REQ, getUsers),
  108. takeEvery(TOGGLE_USER_ENABLE_REQ, enableUser),
  109. takeEvery(DELETE_USER_REQ, deleteUser),
  110. takeEvery(USER_DETAILS_REQ, userDetails),
  111. takeEvery(USER_INVITE_REQ, invite),
  112. ]);
  113. }