forked from cybrespace/mastodon
		
	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:
		
							parent
							
								
									f2e08ff568
								
							
						
					
					
						commit
						f392030ab8
					
				
					 5 changed files with 21 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue