This commit is contained in:
2026-05-26 05:52:09 +09:00
parent dc54f9cbb5
commit 638dccad6d
18 changed files with 259 additions and 55 deletions
+9 -9
View File
@@ -148,11 +148,11 @@ class PostsController < ApplicationController
post.reload
render json: PostRepr.base(post), status: :created
rescue Tag::NicoTagNormalisationError
head :bad_request
render_bad_request('ニコニコ・タグは直接指定できません.', field: :tags)
rescue ArgumentError => e
render json: { errors: [e.message] }, status: :unprocessable_entity
render_unprocessable_entity(e.message)
rescue ActiveRecord::RecordInvalid => e
render json: { errors: e.record.errors.full_messages }, status: :unprocessable_entity
render_model_errors(e.record)
end
def viewed
@@ -175,10 +175,10 @@ class PostsController < ApplicationController
force = bool?(:force)
merge = bool?(:merge)
return head :bad_request if force && merge
return render_bad_request('force と merge は同時に指定できません.') if force && merge
base_version_no = parse_base_version_no
return head :bad_request if !(force) && !(base_version_no)
return render_bad_request('base_version_no は必須です.', field: :base_version_no) if !(force) && !(base_version_no)
title = params[:title].presence
tag_names = params[:tags].to_s.split
@@ -238,11 +238,11 @@ class PostsController < ApplicationController
json['tags'] = build_tag_tree_for(post.tags)
render json:, status: :ok
rescue Tag::NicoTagNormalisationError
head :bad_request
render_bad_request('ニコニコ・タグは直接指定できません.', field: :tags)
rescue ArgumentError => e
render json: { errors: [e.message] }, status: :unprocessable_entity
render_validation_error(fields: { parent_post_ids: [e.message] })
rescue ActiveRecord::RecordInvalid => e
render json: { errors: e.record.errors.full_messages }, status: :unprocessable_entity
render_validation_error(e.record)
end
def changes
@@ -416,7 +416,7 @@ class PostsController < ApplicationController
def sync_parent_posts! post, parent_post_ids
if parent_post_ids.include?(post.id)
post.errors.add(:base, '自分自身を親投稿にはできません.')
post.errors.add(:parent_post_ids, '自分自身を親投稿にはできません.')
raise ActiveRecord::RecordInvalid, post
end