This commit is contained in:
2025-05-30 01:21:30 +09:00
parent e8e18160bc
commit f93cea4e51
8 changed files with 85 additions and 8 deletions
@@ -1,2 +1,16 @@
class ApplicationController < ActionController::API
before_action :authenticate_user
def current_user
@current_user
end
private
def authenticate_user
code = request.headers['X-Transfer-Code'] || request.headers['HTTP_X_TRANSFER_CODE']
@current_user = User.find_by inheritance_code: code
Rails.logger.info("X-Transfer-Code: #{request.headers['X-Transfer-Code']}")
Rails.logger.info("current_user: #{@current_user&.id}")
end
end
+18 -1
View File
@@ -24,7 +24,10 @@ class PostsController < ApplicationController
# GET /posts/1
def show
@post = Post.includes(:tags).find(params[:id])
render json: @post.as_json(include: { tags: { only: [:id, :name, :category] } })
viewed = current_user&.viewed?(@post)
render json: (@post
.as_json(include: { tags: { only: [:id, :name, :category] } })
.merge(viewed: viewed))
end
# POST /posts
@@ -38,6 +41,20 @@ class PostsController < ApplicationController
end
end
def viewed
return head :unauthorized unless current_user
current_user.viewed_posts << Post.find(params[:id])
head :no_content
end
def unviewed
return head :unauthorized unless current_user
current_user.viewed_posts.delete(Post.find(params[:id]))
head :no_content
end
# PATCH/PUT /posts/1
def update
if @post.update(post_params)
+1 -1
View File
@@ -17,6 +17,6 @@ class User < ApplicationRecord
has_many :updated_wiki_pages, class_name: 'WikiPage', foreign_key: 'updated_user_id', dependent: :nullify
def viewed? post
user_post_views.exists? post_id: post.id, viewed: true
user_post_views.exists? post_id: post.id
end
end
+2
View File
@@ -40,6 +40,8 @@ Rails.application.routes.draw do
get "post_tags/create"
get "post_tags/update"
get "post_tags/destroy"
post 'posts/:id/viewed', to: 'posts#viewed'
delete 'posts/:id/viewed', to: 'posts#unviewed'
get "nico_tag_relation/index"
get "nico_tag_relation/show"
get "nico_tag_relation/create"
@@ -0,0 +1,5 @@
class RemoveColumnFromUserPostView < ActiveRecord::Migration[8.0]
def change
remove_column :user_post_views, :viewed
end
end