diff --git a/app/controllers/api/v1/posts_controller.rb b/app/controllers/api/v1/posts_controller.rb index 94f7f3f..9cc268b 100644 --- a/app/controllers/api/v1/posts_controller.rb +++ b/app/controllers/api/v1/posts_controller.rb @@ -3,7 +3,7 @@ class Api::V1::PostsController < Api::V1::ApplicationController before_action :permit_params, :check_url, :map_post_type, :get_post, only: [:create] before_action :load_post, only: [:add_viewed_times, :show] - skip_before_action :authenticate_user_from_token, only: [:posts, :show, :liked_posts, :bookmarked_posts] + skip_before_action :authenticate_user_from_token, only: [:posts, :show, :liked_posts, :bookmarked_posts, :random] before_action :fetch_current_user @@ -60,6 +60,10 @@ class Api::V1::PostsController < Api::V1::ApplicationController render json: Post.where('title LIKE ?', "%#{params[:keywords]}%").page(params[:page]), each_serializer: EachPostSerializer end + def random + render json: Post.order('RANDOM()').limit(1).first, serializer: PostSerializer + end + private def permit_params diff --git a/config/routes.rb b/config/routes.rb index 0bbe95e..0260544 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -93,6 +93,7 @@ Rails.application.routes.draw do end get '/posts/search', to: 'posts#search' + get '/posts/random', to: 'posts#random' resources :posts, only: [:create, :index, :show] do post :like, to: 'likes#like'