このコミットが含まれているのは:
2026-07-18 01:12:55 +09:00
コミット 9eca670934
10個のファイルの変更435行の追加402行の削除
+11 -3
ファイルの表示
@@ -115,7 +115,7 @@ class PostsController < ApplicationController
render json: PostRepr.base(post, current_user)
end
def preview
def metadata
return head :unauthorized unless current_user
return head :forbidden unless current_user.gte_member?
return render_bad_request('URL は必須です.') if params[:url].blank?
@@ -128,6 +128,7 @@ class PostsController < ApplicationController
provenance: { },
tag_sources: { } }],
fetch_metadata: true).first
return render_validation_error fields: preview[:validation_errors] if preview[:validation_errors].present?
render json: {
url: preview[:url],
@@ -140,7 +141,6 @@ class PostsController < ApplicationController
video_ms: preview[:attributes]['video_ms'],
field_warnings: preview[:field_warnings],
base_warnings: preview[:base_warnings],
validation_errors: preview[:validation_errors],
existing_post: compact_post(preview[:existing_post_id]) }
rescue ArgumentError => e
render_bad_request e.message
@@ -178,6 +178,11 @@ class PostsController < ApplicationController
attributes: post_create_attributes,
thumbnail: params[:thumbnail]).run
return render json: dry_run_json(preflight) if bool?(:dry)
if preflight[:existing_post].present?
post = Post.new(url: preflight[:url])
post.errors.add :url, :taken
return render_post_form_record_invalid post
end
post = PostCreator.new(actor: current_user,
attributes: post_create_attributes.merge(
@@ -191,7 +196,10 @@ class PostsController < ApplicationController
:original_created_before,
:duration,
:video_ms,
:normalised_tags,
:direct_tag_specs,
:default_tag_specs,
:snapshot_tag_specs,
:post_tag_specs,
:tag_sections,
:normalised_parent_post_ids).symbolize_keys).merge(
thumbnail: params[:thumbnail])).create!