Sha256: b96f1143d14ad8ed728e01dd3e0705e85755c47fd7fec1dd62ee487f29192e35

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

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

client = DiscourseApi::Client.new("http://localhost:3000")
client.api_key = "YOUR_API_KEY"
client.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 and topic_slug from response
topic_id = response['topic_id']
topic_slug = response['topic_slug']

##
# 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_slug, 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_slug, topic_id, params)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
discourse_api-0.38.0 examples/change_topic_status.rb
discourse_api-0.37.0 examples/change_topic_status.rb
discourse_api-0.36.0 examples/change_topic_status.rb