commit: f392030ab82a70086f93bb02c3faab53c3fbd28e
parent: f2e08ff56855a2b14567f6218900823664a0ee2c
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 23 Jan 2017 21:09:27 +0100
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
Diffstat:
5 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/app/assets/javascripts/components/actions/cards.jsx b/app/assets/javascripts/components/actions/cards.jsx
@@ -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));
});
};
diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb
@@ -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
diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb
@@ -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
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
@@ -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
diff --git a/config/routes.rb b/config/routes.rb
@@ -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