class Thoth::PostApiController

Public Instance Methods

check_name() click to toggle source

Returns a response indicating whether the specified post name is valid and not already taken. Returns an HTTP 200 response on success or an HTTP 500 response on error.

Query Parameters

name

post name to check

Sample Response

{"valid":true,"unique":true}
# File lib/thoth/controller/api/post.rb, line 46
def check_name
  error_403 unless auth_key_valid?

  unless request[:name] && request[:name].length > 0
    error_400('Missing required parameter: name')
  end

  response['Content-Type'] = 'application/json'

  name = request[:name].to_s

  JSON.generate({
    :valid  => Post.name_valid?(name),
    :unique => Post.name_unique?(name)
  })
end
delete() click to toggle source

Deletes the specified comment. Returns an HTTP 200 response on success, an HTTP 500 response on error, or an HTTP 404 response if the specified comment does not exist.

Query Parameters (POST only)

id

comment id

token

form token

Sample Response

Success
{"success":true}
Failure
{"error":"The comment could not be deleted due to a database error."}
# File lib/thoth/controller/api/post.rb, line 82
def delete
  error_403 unless auth_key_valid? && form_token_valid?
  error_405 unless request.post?
  error_404 unless request[:id] && @comment = Comment[request[:id]]

  response['Content-Type'] = 'application/json'

  if @comment.destroy
    Ramaze::Cache.action.clear
    JSON.generate({:success => true})
  else
    respond(JSON.generate({
      :error => 'The comment could not be deleted due to a database error.'
    }, 500))
  end
end
suggest_name() click to toggle source

Suggests a valid and unique name for the specified post title. Returns an HTTP 200 response on success or an HTTP 500 response on error.

Query Parameters

title

post title

Sample Response

{"name":"ninjas-are-awesome"}
# File lib/thoth/controller/api/post.rb, line 110
def suggest_name
  error_403 unless auth_key_valid?

  unless request[:title] && request[:title].length > 0
    error_400('Missing required parameter: title')
  end

  response['Content-Type'] = 'application/json'

  JSON.generate({"name" => Post.suggest_name(request[:title])})
end