You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
3.8 KiB

7 years ago
  1. import api from '../api'
  2. export const REBLOG_REQUEST = 'REBLOG_REQUEST';
  3. export const REBLOG_SUCCESS = 'REBLOG_SUCCESS';
  4. export const REBLOG_FAIL = 'REBLOG_FAIL';
  5. export const FAVOURITE_REQUEST = 'FAVOURITE_REQUEST';
  6. export const FAVOURITE_SUCCESS = 'FAVOURITE_SUCCESS';
  7. export const FAVOURITE_FAIL = 'FAVOURITE_FAIL';
  8. export const UNREBLOG_REQUEST = 'UNREBLOG_REQUEST';
  9. export const UNREBLOG_SUCCESS = 'UNREBLOG_SUCCESS';
  10. export const UNREBLOG_FAIL = 'UNREBLOG_FAIL';
  11. export const UNFAVOURITE_REQUEST = 'UNFAVOURITE_REQUEST';
  12. export const UNFAVOURITE_SUCCESS = 'UNFAVOURITE_SUCCESS';
  13. export const UNFAVOURITE_FAIL = 'UNFAVOURITE_FAIL';
  14. export function reblog(status) {
  15. return function (dispatch, getState) {
  16. dispatch(reblogRequest(status));
  17. api(getState).post(`/api/v1/statuses/${status.get('id')}/reblog`).then(function (response) {
  18. // The reblog API method returns a new status wrapped around the original. In this case we are only
  19. // interested in how the original is modified, hence passing it skipping the wrapper
  20. dispatch(reblogSuccess(status, response.data.reblog));
  21. }).catch(function (error) {
  22. console.error(error);
  23. dispatch(reblogFail(status, error));
  24. });
  25. };
  26. };
  27. export function unreblog(status) {
  28. return (dispatch, getState) => {
  29. dispatch(unreblogRequest(status));
  30. api(getState).post(`/api/v1/statuses/${status.get('id')}/unreblog`).then(response => {
  31. dispatch(unreblogSuccess(status, response.data));
  32. }).catch(error => {
  33. console.error(error);
  34. dispatch(unreblogFail(status, error));
  35. });
  36. };
  37. };
  38. export function reblogRequest(status) {
  39. return {
  40. type: REBLOG_REQUEST,
  41. status: status
  42. };
  43. };
  44. export function reblogSuccess(status, response) {
  45. return {
  46. type: REBLOG_SUCCESS,
  47. status: status,
  48. response: response
  49. };
  50. };
  51. export function reblogFail(status, error) {
  52. return {
  53. type: REBLOG_FAIL,
  54. status: status,
  55. error: error
  56. };
  57. };
  58. export function unreblogRequest(status) {
  59. return {
  60. type: UNREBLOG_REQUEST,
  61. status: status
  62. };
  63. };
  64. export function unreblogSuccess(status, response) {
  65. return {
  66. type: UNREBLOG_SUCCESS,
  67. status: status,
  68. response: response
  69. };
  70. };
  71. export function unreblogFail(status, error) {
  72. return {
  73. type: UNREBLOG_FAIL,
  74. status: status,
  75. error: error
  76. };
  77. };
  78. export function favourite(status) {
  79. return function (dispatch, getState) {
  80. dispatch(favouriteRequest(status));
  81. api(getState).post(`/api/v1/statuses/${status.get('id')}/favourite`).then(function (response) {
  82. dispatch(favouriteSuccess(status, response.data));
  83. }).catch(function (error) {
  84. console.error(error);
  85. dispatch(favouriteFail(status, error));
  86. });
  87. };
  88. };
  89. export function unfavourite(status) {
  90. return (dispatch, getState) => {
  91. dispatch(unfavouriteRequest(status));
  92. api(getState).post(`/api/v1/statuses/${status.get('id')}/unfavourite`).then(response => {
  93. dispatch(unfavouriteSuccess(status, response.data));
  94. }).catch(error => {
  95. console.error(error);
  96. dispatch(unfavouriteFail(status, error));
  97. });
  98. };
  99. };
  100. export function favouriteRequest(status) {
  101. return {
  102. type: FAVOURITE_REQUEST,
  103. status: status
  104. };
  105. };
  106. export function favouriteSuccess(status, response) {
  107. return {
  108. type: FAVOURITE_SUCCESS,
  109. status: status,
  110. response: response
  111. };
  112. };
  113. export function favouriteFail(status, error) {
  114. return {
  115. type: FAVOURITE_FAIL,
  116. status: status,
  117. error: error
  118. };
  119. };
  120. export function unfavouriteRequest(status) {
  121. return {
  122. type: UNFAVOURITE_REQUEST,
  123. status: status
  124. };
  125. };
  126. export function unfavouriteSuccess(status, response) {
  127. return {
  128. type: UNFAVOURITE_SUCCESS,
  129. status: status,
  130. response: response
  131. };
  132. };
  133. export function unfavouriteFail(status, error) {
  134. return {
  135. type: UNFAVOURITE_FAIL,
  136. status: status,
  137. error: error
  138. };
  139. };