change reaction api to match other interactions

Status reactions had an API similar to that of
announcement reactions, using PUT and DELETE at a
single endpoint.  I believe that for statuses, it
makes more sense to follow the convention of the
other interactions and use separate POST endpoints
for create and destroy respectively.
This commit is contained in:
fef 2022-12-01 02:24:08 +00:00 committed by neatchee
parent df673abeea
commit d38c56ab16
4 changed files with 8 additions and 6 deletions

View file

@ -7,7 +7,7 @@ class Api::V1::Statuses::ReactionsController < Api::BaseController
before_action :require_user!
before_action :set_status
def update
def create
ReactService.new.call(current_account, @status, params[:id])
render_empty
end

View file

@ -416,7 +416,7 @@ export const addReaction = (statusId, name) => (dispatch, getState) => {
dispatch(addReactionRequest(statusId, name, alreadyAdded));
}
api(getState).put(`/api/v1/statuses/${statusId}/reactions/${name}`).then(() => {
api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => {
dispatch(addReactionSuccess(statusId, name, alreadyAdded));
}).catch(err => {
if (!alreadyAdded) {
@ -450,7 +450,7 @@ export const addReactionFail = (statusId, name, error) => ({
export const removeReaction = (statusId, name) => (dispatch, getState) => {
dispatch(removeReactionRequest(statusId, name));
api(getState).delete(`/api/v1/statuses/${statusId}/reactions/${name}`).then(() => {
api(getState).post(`/api/v1/statuses/${statusId}/unreact/${name}`).then(() => {
dispatch(removeReactionSuccess(statusId, name));
}).catch(err => {
dispatch(removeReactionFail(statusId, name, err));

View file

@ -436,7 +436,7 @@ export const addReaction = (statusId, name) => (dispatch, getState) => {
dispatch(addReactionRequest(statusId, name, alreadyAdded));
}
api(getState).put(`/api/v1/statuses/${statusId}/reactions/${name}`).then(() => {
api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => {
dispatch(addReactionSuccess(statusId, name, alreadyAdded));
}).catch(err => {
if (!alreadyAdded) {
@ -470,7 +470,7 @@ export const addReactionFail = (statusId, name, error) => ({
export const removeReaction = (statusId, name) => (dispatch, getState) => {
dispatch(removeReactionRequest(statusId, name));
api(getState).delete(`/api/v1/statuses/${statusId}/reactions/${name}`).then(() => {
api(getState).post(`/api/v1/statuses/${statusId}/unreact/${name}`).then(() => {
dispatch(removeReactionSuccess(statusId, name));
}).catch(err => {
dispatch(removeReactionFail(statusId, name, err));

View file

@ -451,6 +451,9 @@ Rails.application.routes.draw do
resource :favourite, only: :create
post :unfavourite, to: 'favourites#destroy'
post '/react/:id', to: 'reactions#create'
post '/unreact/:id', to: 'reactions#destroy'
resource :bookmark, only: :create
post :unbookmark, to: 'bookmarks#destroy'
@ -462,7 +465,6 @@ Rails.application.routes.draw do
resource :history, only: :show
resource :source, only: :show
resources :reactions, only: [:update, :destroy]
post :translate, to: 'translations#create'
end