mirror of
https://github.com/wahyd4/libr-2.git
synced 2026-08-09 05:15:53 +10:00
#8 Add routes for viewing a single user's shared posts
This commit is contained in:
@@ -3,11 +3,11 @@ class Api::V1::PostsController < Api::V1::ApplicationController
|
||||
before_action :permit_params, :map_post_type, :get_post, only: [:create]
|
||||
before_action :load_post, only: [:add_viewed_times, :show]
|
||||
|
||||
skip_before_action :authenticate_user_from_token, only: [:show, :liked_posts]
|
||||
skip_before_action :authenticate_user_from_token, only: [:posts, :show, :liked_posts, :bookmarked_posts]
|
||||
|
||||
before_action :fetch_current_user
|
||||
|
||||
before_action :load_target_user, only: [:liked_posts, :bookmarked_posts]
|
||||
before_action :load_target_user, only: [:posts, :liked_posts, :bookmarked_posts]
|
||||
|
||||
after_action :process_post, only: :create
|
||||
|
||||
@@ -39,6 +39,11 @@ class Api::V1::PostsController < Api::V1::ApplicationController
|
||||
render nothing: true
|
||||
end
|
||||
|
||||
def posts
|
||||
post_ids = @target_user.share_instances.order('created_at DESC').page(params[:page]).pluck(:sharable_id)
|
||||
render json: Post.where(id: post_ids), each_serializer: EachPostSerializer
|
||||
end
|
||||
|
||||
def liked_posts
|
||||
ids = Like.where(user_id: @target_user.id).order('created_at DESC').pluck(:likable_id)
|
||||
render json: Post.where(id: ids).page(params[:page]), each_serializer: EachPostSerializer
|
||||
|
||||
@@ -84,6 +84,7 @@ Rails.application.routes.draw do
|
||||
resources :users, only:[:show] do
|
||||
resources :follow, only: [:create]
|
||||
post :unfollow, to: 'follow#destroy'
|
||||
get '/posts', to: 'posts#posts'
|
||||
get '/posts/liked', to: 'posts#liked_posts'
|
||||
get '/posts/bookmarked', to: 'posts#bookmarked_posts'
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user