Advertisement
Guest User

Untitled

a guest
May 24th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  1. import { combineReducers } from 'redux';
  2. import { TEST_ACTION, TEST_ASYNC_ACTION, TEST_REQUEST_ASYNC_ACTION, TEST_RECEIVE_ASYNC_ACTION } from './actions/test'
  3. import { REQUEST_AUTH, RECEIVE_AUTH } from './actions/user'
  4. import {
  5. REQUEST_TVRAIN_FILE,
  6. RECEIVE_TVRAIN_FILE,
  7. REQUEST_CDN_FILE,
  8. RECEIVE_CDN_FILE,
  9. CHECK_PROCCESS,
  10. CHECK_END,
  11. REQUEST_EAGLE_STATUS,
  12. RECEIVE_EAGLE_STATUS } from './actions/check'
  13. import { REQUEST_REPORT, RECEIVE_REPORT, CLOSE_REPORT_MESSAGE } from './actions/report'
  14. import { APP_ERROR } from './actions/app'
  15. import { STATUS_INIT,
  16. CHECK_ITEM_TVRAIN_FILE,
  17. CHECK_ITEM_CDN_FILE,
  18. CHECK_ITEM_NGENIX,
  19. CHECK_ITEM_CDNVIDEO,
  20. CHECK_ITEM_EAGLE } from './constants'
  21.  
  22. /** REDUCERS INITIAL STATE */
  23. const checkInitialStateItem = {
  24. isFetching: false,
  25. status: STATUS_INIT
  26. }
  27.  
  28. export const checkInitialState = {
  29. targets: {
  30. [CHECK_ITEM_TVRAIN_FILE]: checkInitialStateItem,
  31. [CHECK_ITEM_CDN_FILE]: checkInitialStateItem,
  32. [CHECK_ITEM_NGENIX]: checkInitialStateItem,
  33. [CHECK_ITEM_CDNVIDEO]: checkInitialStateItem,
  34. [CHECK_ITEM_EAGLE]: checkInitialStateItem
  35. },
  36. status: STATUS_INIT
  37. }
  38.  
  39. /** REDUCERS */
  40. export function app(state = { error: false }, action) {
  41. switch(action.type) {
  42. case APP_ERROR:
  43. return Object.assign({}, state, action.params)
  44. default:
  45. return state
  46. }
  47. }
  48.  
  49. export function user(state = { auth: false, isFetching: false }, action) {
  50. switch(action.type) {
  51. case REQUEST_AUTH:
  52. return Object.assign({}, state, action.params, {
  53. status: STATUS_INIT,
  54. isFetching: true
  55. })
  56. case RECEIVE_AUTH:
  57. return Object.assign({}, state, action.params, {
  58. isFetching: false
  59. })
  60. default:
  61. return state
  62. }
  63. }
  64.  
  65. export function check(state = checkInitialState, action) {
  66. switch(action.type) {
  67. case CHECK_PROCCESS:
  68. case CHECK_END:
  69. return Object.assign({}, state, {status: action.status})
  70. case REQUEST_TVRAIN_FILE:
  71. case REQUEST_CDN_FILE:
  72. case REQUEST_EAGLE_STATUS:
  73. return Object.assign({}, state, {
  74. targets: Object.assign({}, state.targets, {
  75. [action.target]: Object.assign({}, state.targets[action.target], {
  76. isFetching: true
  77. })
  78. })
  79. })
  80. case RECEIVE_TVRAIN_FILE:
  81. case RECEIVE_CDN_FILE:
  82. case RECEIVE_EAGLE_STATUS:
  83. return Object.assign({}, state, {
  84. targets: Object.assign({}, state.targets, {
  85. [action.target]: Object.assign({}, state.targets[action.target], action.params, {
  86. isFetching: false
  87. })
  88. })
  89. })
  90. default:
  91. return state
  92. }
  93. }
  94.  
  95. export function report(state = { isFetching: false, showOverMessage: false }, action) {
  96. switch(action.type) {
  97. case REQUEST_REPORT:
  98. return Object.assign({}, state, { isFetching: true, showOverMessage: false })
  99. case RECEIVE_REPORT:
  100. return Object.assign({}, state, { isFetching: false, showOverMessage: true })
  101. case CLOSE_REPORT_MESSAGE:
  102. return Object.assign({}, state, { showOverMessage: false })
  103. default:
  104. return state
  105. }
  106. }
  107.  
  108.  
  109. export default combineReducers({
  110. app: app,
  111. user: user,
  112. check: check,
  113. report: report
  114. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement