reducers.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import { reducerFactory } from 'app/core/redux';
  2. import { LdapState, LdapUserState } from 'app/types';
  3. import {
  4. ldapConnectionInfoLoadedAction,
  5. ldapFailedAction,
  6. userMappingInfoLoadedAction,
  7. userMappingInfoFailedAction,
  8. clearUserErrorAction,
  9. userLoadedAction,
  10. userSessionsLoadedAction,
  11. ldapSyncStatusLoadedAction,
  12. clearUserMappingInfoAction,
  13. } from './actions';
  14. const initialLdapState: LdapState = {
  15. connectionInfo: [],
  16. syncInfo: null,
  17. user: null,
  18. connectionError: null,
  19. userError: null,
  20. };
  21. const initialLdapUserState: LdapUserState = {
  22. user: null,
  23. ldapUser: null,
  24. ldapSyncInfo: null,
  25. sessions: [],
  26. };
  27. export const ldapReducer = reducerFactory(initialLdapState)
  28. .addMapper({
  29. filter: ldapConnectionInfoLoadedAction,
  30. mapper: (state, action) => ({
  31. ...state,
  32. ldapError: null,
  33. connectionInfo: action.payload,
  34. }),
  35. })
  36. .addMapper({
  37. filter: ldapFailedAction,
  38. mapper: (state, action) => ({
  39. ...state,
  40. ldapError: action.payload,
  41. }),
  42. })
  43. .addMapper({
  44. filter: ldapSyncStatusLoadedAction,
  45. mapper: (state, action) => ({
  46. ...state,
  47. syncInfo: action.payload,
  48. }),
  49. })
  50. .addMapper({
  51. filter: userMappingInfoLoadedAction,
  52. mapper: (state, action) => ({
  53. ...state,
  54. user: action.payload,
  55. userError: null,
  56. }),
  57. })
  58. .addMapper({
  59. filter: userMappingInfoFailedAction,
  60. mapper: (state, action) => ({
  61. ...state,
  62. user: null,
  63. userError: action.payload,
  64. }),
  65. })
  66. .addMapper({
  67. filter: clearUserMappingInfoAction,
  68. mapper: (state, action) => ({
  69. ...state,
  70. user: null,
  71. }),
  72. })
  73. .addMapper({
  74. filter: clearUserErrorAction,
  75. mapper: state => ({
  76. ...state,
  77. userError: null,
  78. }),
  79. })
  80. .create();
  81. export const ldapUserReducer = reducerFactory(initialLdapUserState)
  82. .addMapper({
  83. filter: userMappingInfoLoadedAction,
  84. mapper: (state, action) => ({
  85. ...state,
  86. ldapUser: action.payload,
  87. }),
  88. })
  89. .addMapper({
  90. filter: userMappingInfoFailedAction,
  91. mapper: (state, action) => ({
  92. ...state,
  93. ldapUser: null,
  94. userError: action.payload,
  95. }),
  96. })
  97. .addMapper({
  98. filter: clearUserErrorAction,
  99. mapper: state => ({
  100. ...state,
  101. userError: null,
  102. }),
  103. })
  104. .addMapper({
  105. filter: ldapSyncStatusLoadedAction,
  106. mapper: (state, action) => ({
  107. ...state,
  108. ldapSyncInfo: action.payload,
  109. }),
  110. })
  111. .addMapper({
  112. filter: userLoadedAction,
  113. mapper: (state, action) => ({
  114. ...state,
  115. user: action.payload,
  116. userError: null,
  117. }),
  118. })
  119. .addMapper({
  120. filter: userSessionsLoadedAction,
  121. mapper: (state, action) => ({
  122. ...state,
  123. sessions: action.payload,
  124. }),
  125. })
  126. .create();
  127. export default {
  128. ldap: ldapReducer,
  129. ldapUser: ldapUserReducer,
  130. };