Add /api/v1/notifications/clear, non-existing link cards for statuses will

now return empty hash instead of throwing a 404 error. When following,
merge into timeline will filter statuses
This commit is contained in:
Eugen Rochko 2017-01-23 21:09:27 +01:00
parent f2e08ff568
commit f392030ab8
5 changed files with 21 additions and 11 deletions

View file

@ -9,13 +9,12 @@ export function fetchStatusCard(id) {
dispatch(fetchStatusCardRequest(id));
api(getState).get(`/api/v1/statuses/${id}/card`).then(response => {
dispatch(fetchStatusCardSuccess(id, response.data));
}).catch(error => {
if (error.response.status === 404) {
// This is fine
if (response.data.length === 0) {
return;
}
dispatch(fetchStatusCardSuccess(id, response.data));
}).catch(error => {
dispatch(fetchStatusCardFail(id, error));
});
};

View file

@ -24,4 +24,9 @@ class Api::V1::NotificationsController < ApiController
def show
@notification = Notification.where(account: current_account).find(params[:id])
end
def clear
Notification.where(account: current_account).delete_all
render_empty
end
end

View file

@ -22,7 +22,8 @@ class Api::V1::StatusesController < ApiController
end
def card
@card = PreviewCard.find_by!(status: @status)
@card = PreviewCard.find_by(status: @status)
render_empty if @card.nil?
end
def reblogged_by

View file

@ -43,6 +43,7 @@ class FeedManager
timeline_key = key(:home, into_account.id)
from_account.statuses.limit(MAX_ITEMS).each do |status|
next if filter?(:home, status, into_account)
redis.zadd(timeline_key, status.id, status.id)
end

View file

@ -107,6 +107,7 @@ Rails.application.routes.draw do
resources :media, only: [:create]
resources :apps, only: [:create]
resources :blocks, only: [:index]
resources :favourites, only: [:index]
resources :follow_requests, only: [:index] do
member do
@ -115,8 +116,11 @@ Rails.application.routes.draw do
end
end
resources :notifications, only: [:index, :show]
resources :favourites, only: [:index]
resources :notifications, only: [:index, :show] do
collection do
post :clear
end
end
resources :accounts, only: [:show] do
collection do