class ScrapboxClient::Client

Constants

BASE_URI_V1
URI_RESOURCE_MAP

Attributes

project_name[R]

Public Class Methods

new(project_name:) click to toggle source
# File lib/scrapbox_client.rb, line 18
def initialize(project_name:)
  @project_name = project_name
end

Public Instance Methods

fetch_page(page_title:) click to toggle source
# File lib/scrapbox_client.rb, line 33
def fetch_page(page_title:)
  return unless page_title
  params = {
    project_name: project_name,
    page_title: page_title,
  }
  res = request_api(resource: URI_RESOURCE_MAP[:page], params: params)

  return res
end
fetch_page_body(page_title:) click to toggle source
# File lib/scrapbox_client.rb, line 44
def fetch_page_body(page_title:)
  return unless page_title
  params = {
    project_name: project_name,
    page_title: page_title,
  }
  res = request_api(resource: URI_RESOURCE_MAP[:page_body], params: params)

  return res
end
fetch_page_image(page_title:) click to toggle source
# File lib/scrapbox_client.rb, line 55
def fetch_page_image(page_title:)
  return unless page_title
  params = {
    project_name: project_name,
    page_title: page_title,
  }
  res = request_api(resource: URI_RESOURCE_MAP[:page_image], params: params)

  return res
end
fetch_page_list(skip: skip = 0, limit: limit = 100) click to toggle source
# File lib/scrapbox_client.rb, line 22
def fetch_page_list(skip: skip = 0, limit: limit = 100)
  params = {
    project_name: project_name,
    skip: skip,
    limit: limit,
  }
  res = request_api(resource: URI_RESOURCE_MAP[:page_list], params: params)

  return res
end

Private Instance Methods

request_api(resource:, params:) click to toggle source
# File lib/scrapbox_client.rb, line 67
def request_api(resource:, params:)
  uri = URI.parse(BASE_URI_V1 + sprintf(resource, params))
  res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
    http.open_timeout = 5
    http.read_timeout = 10
    http.get(uri.request_uri)
  end
  unless res.code == '200' || res.code == '302'
    raise "request failed with status code " + res.code
  end

  return res
end