From 1fce687f8e03d78b4b842422fc6621bba439e1cd Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun, 2 Oct 2016 15:14:26 +0200
Subject: Unreblogging and unfavouriting from the UI

---
 .../components/actions/interactions.jsx            | 66 ++++++++++++++++++++--
 1 file changed, 62 insertions(+), 4 deletions(-)

(limited to 'app/assets/javascripts/components/actions/interactions.jsx')

diff --git a/app/assets/javascripts/components/actions/interactions.jsx b/app/assets/javascripts/components/actions/interactions.jsx
index 8ce0c7561..ce7797eaa 100644
--- a/app/assets/javascripts/components/actions/interactions.jsx
+++ b/app/assets/javascripts/components/actions/interactions.jsx
@@ -8,6 +8,14 @@ export const FAVOURITE_REQUEST = 'FAVOURITE_REQUEST';
 export const FAVOURITE_SUCCESS = 'FAVOURITE_SUCCESS';
 export const FAVOURITE_FAIL    = 'FAVOURITE_FAIL';
 
+export const UNREBLOG_REQUEST = 'UNREBLOG_REQUEST';
+export const UNREBLOG_SUCCESS = 'UNREBLOG_SUCCESS';
+export const UNREBLOG_FAIL    = 'UNREBLOG_FAIL';
+
+export const UNFAVOURITE_REQUEST = 'UNFAVOURITE_REQUEST';
+export const UNFAVOURITE_SUCCESS = 'UNFAVOURITE_SUCCESS';
+export const UNFAVOURITE_FAIL    = 'UNFAVOURITE_FAIL';
+
 export function reblog(status) {
   return function (dispatch, getState) {
     dispatch(reblogRequest(status));
@@ -24,10 +32,12 @@ export function reblog(status) {
 
 export function unreblog(status) {
   return (dispatch, getState) => {
+    dispatch(unreblogRequest(status));
+
     api(getState).post(`/api/v1/statuses/${status.get('id')}/unreblog`).then(response => {
-      //
+      dispatch(unreblogSuccess(status, response.data));
     }).catch(error => {
-      //
+      dispatch(unreblogFail(status, error));
     });
   };
 };
@@ -55,6 +65,29 @@ export function reblogFail(status, error) {
   };
 };
 
+export function unreblogRequest(status) {
+  return {
+    type: UNREBLOG_REQUEST,
+    status: status
+  };
+};
+
+export function unreblogSuccess(status, response) {
+  return {
+    type: UNREBLOG_SUCCESS,
+    status: status,
+    response: response
+  };
+};
+
+export function unreblogFail(status, error) {
+  return {
+    type: UNREBLOG_FAIL,
+    status: status,
+    error: error
+  };
+};
+
 export function favourite(status) {
   return function (dispatch, getState) {
     dispatch(favouriteRequest(status));
@@ -69,10 +102,12 @@ export function favourite(status) {
 
 export function unfavourite(status) {
   return (dispatch, getState) => {
+    dispatch(unfavouriteRequest(status));
+
     api(getState).post(`/api/v1/statuses/${status.get('id')}/unfavourite`).then(response => {
-      //
+      dispatch(unfavouriteSuccess(status, response.data));
     }).catch(error => {
-      //
+      dispatch(unfavouriteFail(status, error));
     });
   };
 };
@@ -99,3 +134,26 @@ export function favouriteFail(status, error) {
     error: error
   };
 };
+
+export function unfavouriteRequest(status) {
+  return {
+    type: UNFAVOURITE_REQUEST,
+    status: status
+  };
+};
+
+export function unfavouriteSuccess(status, response) {
+  return {
+    type: UNFAVOURITE_SUCCESS,
+    status: status,
+    response: response
+  };
+};
+
+export function unfavouriteFail(status, error) {
+  return {
+    type: UNFAVOURITE_FAIL,
+    status: status,
+    error: error
+  };
+};
-- 
cgit 

