diff --git a/lib/discourse_api/api/categories.rb b/lib/discourse_api/api/categories.rb index 41e8268..0437f15 100644 --- a/lib/discourse_api/api/categories.rb +++ b/lib/discourse_api/api/categories.rb @@ -68,6 +68,11 @@ def update_category(args = {}) response["body"]["category"] if response["body"] end + def reorder_categories(args = {}) + params = API.params(args).required(:mapping) + post("/categories/reorder", params) + end + def delete_category(id) response = delete("/categories/#{id}") response[:body]["success"] diff --git a/spec/discourse_api/api/categories_spec.rb b/spec/discourse_api/api/categories_spec.rb index f33d22f..6638120 100644 --- a/spec/discourse_api/api/categories_spec.rb +++ b/spec/discourse_api/api/categories_spec.rb @@ -182,6 +182,28 @@ end end + describe "#reorder_categories" do + before do + stub_post("#{host}/categories/reorder").to_return( + body: fixture("notification_success.json"), + headers: { + content_type: "application/json", + }, + ) + end + + it "makes a categories reordering request" do + payload = { "1": 2, "2": 3, "3": 4, "4": 1 } + response = subject.reorder_categories(mapping: payload.to_json) + expect( + a_post("#{host}/categories/reorder").with( + body: "mapping=#{CGI.escape(payload.to_json.to_s)}", + ), + ).to have_been_made + expect(response["success"]).to eq("OK") + end + end + describe "#category_set_user_notification" do before do stub_post("#{host}/category/1/notifications").to_return(