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
master
Eugen Rochko 8 years ago
parent f2e08ff568
commit f392030ab8
  1. 7
      app/assets/javascripts/components/actions/cards.jsx
  2. 5
      app/controllers/api/v1/notifications_controller.rb
  3. 3
      app/controllers/api/v1/statuses_controller.rb
  4. 1
      app/lib/feed_manager.rb
  5. 16
      config/routes.rb

@ -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));
});
};

@ -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

@ -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

@ -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

@ -103,10 +103,11 @@ Rails.application.routes.draw do
get '/timelines/public', to: 'timelines#public', as: :public_timeline
get '/timelines/tag/:id', to: 'timelines#tag', as: :hashtag_timeline
resources :follows, only: [:create]
resources :media, only: [:create]
resources :apps, only: [:create]
resources :blocks, only: [:index]
resources :follows, only: [:create]
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

Loading…
Cancel
Save