mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Consistently handle category param
See https://meta.discourse.org/t/api-post-to-posts-json-inconsistent-between-users/118571
for more info.
This commit removes a 5 year old temporary fix that is no longer needed.
bc1824a6ed (diff-d8c648926664f849aec050757bfcb6f9R72)
The web interface uses category_id when creating a topic so I think we
should unify on category_id when using the api.
This commit is contained in:
parent
bfea922167
commit
373b8a2139
@ -132,7 +132,7 @@ module SeedData
|
|||||||
title: title,
|
title: title,
|
||||||
raw: raw,
|
raw: raw,
|
||||||
skip_validations: true,
|
skip_validations: true,
|
||||||
category: category&.name
|
category: category&.id
|
||||||
)
|
)
|
||||||
|
|
||||||
if static_first_reply
|
if static_first_reply
|
||||||
|
@ -153,13 +153,8 @@ class TopicCreator
|
|||||||
return Category.find(SiteSetting.shared_drafts_category)
|
return Category.find(SiteSetting.shared_drafts_category)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Temporary fix to allow older clients to create topics.
|
|
||||||
# When all clients are updated the category variable should
|
|
||||||
# be set directly to the contents of the if statement.
|
|
||||||
if (@opts[:category].is_a? Integer) || (@opts[:category] =~ /^\d+$/)
|
if (@opts[:category].is_a? Integer) || (@opts[:category] =~ /^\d+$/)
|
||||||
Category.find_by(id: @opts[:category])
|
Category.find_by(id: @opts[:category])
|
||||||
else
|
|
||||||
Category.find_by(name_lower: @opts[:category].try(:downcase))
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -53,9 +53,9 @@ describe TopicCreator do
|
|||||||
expect(topic.public_topic_timer).to eq(nil)
|
expect(topic.public_topic_timer).to eq(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "category name is case insensitive" do
|
it "can create a topic in a category" do
|
||||||
category = Fabricate(:category, name: "Neil's Blog")
|
category = Fabricate(:category, name: "Neil's Blog")
|
||||||
topic = TopicCreator.create(user, Guardian.new(user), valid_attrs.merge(category: "neil's blog"))
|
topic = TopicCreator.create(user, Guardian.new(user), valid_attrs.merge(category: category.id))
|
||||||
expect(topic).to be_valid
|
expect(topic).to be_valid
|
||||||
expect(topic.category).to eq(category)
|
expect(topic.category).to eq(category)
|
||||||
end
|
end
|
||||||
@ -103,18 +103,18 @@ describe TopicCreator do
|
|||||||
|
|
||||||
it "fails for regular user if minimum_required_tags is not satisfied" do
|
it "fails for regular user if minimum_required_tags is not satisfied" do
|
||||||
expect do
|
expect do
|
||||||
TopicCreator.create(user, Guardian.new(user), valid_attrs.merge(category: "beta"))
|
TopicCreator.create(user, Guardian.new(user), valid_attrs.merge(category: category.id))
|
||||||
end.to raise_error(ActiveRecord::Rollback)
|
end.to raise_error(ActiveRecord::Rollback)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "lets admin create a topic regardless of minimum_required_tags" do
|
it "lets admin create a topic regardless of minimum_required_tags" do
|
||||||
topic = TopicCreator.create(admin, Guardian.new(admin), valid_attrs.merge(tags: [tag1.name], category: "beta"))
|
topic = TopicCreator.create(admin, Guardian.new(admin), valid_attrs.merge(tags: [tag1.name], category: category.id))
|
||||||
expect(topic).to be_valid
|
expect(topic).to be_valid
|
||||||
expect(topic.tags.length).to eq(1)
|
expect(topic.tags.length).to eq(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "works for regular user if minimum_required_tags is satisfied" do
|
it "works for regular user if minimum_required_tags is satisfied" do
|
||||||
topic = TopicCreator.create(user, Guardian.new(user), valid_attrs.merge(tags: [tag1.name, tag2.name], category: "beta"))
|
topic = TopicCreator.create(user, Guardian.new(user), valid_attrs.merge(tags: [tag1.name, tag2.name], category: category.id))
|
||||||
expect(topic).to be_valid
|
expect(topic).to be_valid
|
||||||
expect(topic.tags.length).to eq(2)
|
expect(topic.tags.length).to eq(2)
|
||||||
end
|
end
|
||||||
@ -122,7 +122,7 @@ describe TopicCreator do
|
|||||||
it "lets new user create a topic if they don't have sufficient trust level to tag topics" do
|
it "lets new user create a topic if they don't have sufficient trust level to tag topics" do
|
||||||
SiteSetting.min_trust_level_to_tag_topics = 1
|
SiteSetting.min_trust_level_to_tag_topics = 1
|
||||||
new_user = Fabricate(:newuser)
|
new_user = Fabricate(:newuser)
|
||||||
topic = TopicCreator.create(new_user, Guardian.new(new_user), valid_attrs.merge(category: "beta"))
|
topic = TopicCreator.create(new_user, Guardian.new(new_user), valid_attrs.merge(category: category.id))
|
||||||
expect(topic).to be_valid
|
expect(topic).to be_valid
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -580,7 +580,7 @@ describe Category do
|
|||||||
context 'for uncategorized category' do
|
context 'for uncategorized category' do
|
||||||
before do
|
before do
|
||||||
@uncategorized = Category.find(SiteSetting.uncategorized_category_id)
|
@uncategorized = Category.find(SiteSetting.uncategorized_category_id)
|
||||||
create_post(user: Fabricate(:user), category: @uncategorized.name)
|
create_post(user: Fabricate(:user), category: @uncategorized.id)
|
||||||
Category.update_stats
|
Category.update_stats
|
||||||
@uncategorized.reload
|
@uncategorized.reload
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user