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
parent 935788db14
commit e3f97f60a6
No known key found for this signature in database
GPG key ID: EC22E476DC2D3D84
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

@ -442,6 +442,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'
@ -453,7 +456,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