Support for creating embedded topics via API
This commit is contained in:
parent
ecf211aa3f
commit
dbab628e16
|
@ -256,6 +256,9 @@ class PostsController < ApplicationController
|
|||
# php seems to be sending this incorrectly, don't fight with it
|
||||
params[:skip_validations] = params[:skip_validations].to_s == "true"
|
||||
permitted << :skip_validations
|
||||
|
||||
# We allow `embed_url` via the API
|
||||
permitted << :embed_url
|
||||
end
|
||||
|
||||
params.require(:raw)
|
||||
|
|
|
@ -64,6 +64,7 @@ class PostCreator
|
|||
track_topic
|
||||
update_topic_stats
|
||||
update_user_counts
|
||||
create_embedded_topic
|
||||
|
||||
publish
|
||||
ensure_in_allowed_users if guardian.is_staff?
|
||||
|
@ -82,7 +83,6 @@ class PostCreator
|
|||
@post
|
||||
end
|
||||
|
||||
|
||||
def self.create(user, opts)
|
||||
PostCreator.new(user, opts).create
|
||||
end
|
||||
|
@ -110,6 +110,14 @@ class PostCreator
|
|||
|
||||
protected
|
||||
|
||||
# You can supply an `embed_url` for a post to set up the embedded relationship.
|
||||
# This is used by the wp-discourse plugin to associate a remote post with a
|
||||
# discourse post.
|
||||
def create_embedded_topic
|
||||
return unless @opts[:embed_url].present?
|
||||
TopicEmbed.create!(topic_id: @post.topic_id, post_id: @post.id, embed_url: @opts[:embed_url])
|
||||
end
|
||||
|
||||
def handle_spam
|
||||
if @spam
|
||||
GroupMessage.create( Group[:moderators].name,
|
||||
|
|
|
@ -420,5 +420,19 @@ describe PostCreator do
|
|||
end
|
||||
end
|
||||
|
||||
describe "embed_url" do
|
||||
|
||||
let(:embed_url) { "http://eviltrout.com/stupid-url" }
|
||||
|
||||
it "creates the topic_embed record" do
|
||||
creator = PostCreator.new(user,
|
||||
embed_url: embed_url,
|
||||
title: 'Reviews of Science Ovens',
|
||||
raw: 'Did you know that you can use microwaves to cook your dinner? Science!')
|
||||
post = creator.create
|
||||
TopicEmbed.where(embed_url: embed_url).exists?.should be_true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue