Sha256: bcbbc465ddf32a64c5766a45c568e4836faeaaaa4d5ac34671b5ba12e1ff1abf

Contents?: true

Size: 1.24 KB

Versions: 2

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
require File.expand_path("../../lib/discourse_api", __FILE__)

config = DiscourseApi::ExampleHelper.load_yml

client = DiscourseApi::Client.new(config["host"] || "http://localhost:3000")
client.api_key = config["api_key"] || "YOUR_API_KEY"
client.api_username = config["api_username"] || "YOUR_USERNAME"

response =
  client.create_topic(
    category: 1,
    skip_validations: true,
    auto_track: false,
    title: "Concert Master: A new way to choose",
    raw: "This is the raw markdown for my post",
  )

# get topic_id from response
topic_id = response["topic_id"]

##
# available options (guessing from reading discourse source)
# status can be: ['autoclose', 'closed', 'archived', 'disabled', 'visible']
# enabled can be: [true, false]
##

# lock topic (note: api_username determines user that is performing action)
params = { status: "closed", enabled: true, api_username: "YOUR USERNAME/USERS USERNAME" }
client.change_topic_status(topic_id, params)

# unlock topic (note: api_username determines user that is performing action)
params = { status: "closed", enabled: false, api_username: "YOUR USERNAME/USERS USERNAME" }
client.change_topic_status(topic_id, params)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
discourse_api-2.0.1 examples/change_topic_status.rb
discourse_api-2.0.0 examples/change_topic_status.rb