class Hatena::Bookmark::Restful::V1

Constants

API_VERSION
BASE_URI

Public Class Methods

new(credentials) click to toggle source
# File lib/hatena/bookmark/restful/v1.rb, line 43
def initialize(credentials)
  @credentials = credentials
end

Public Instance Methods

api_version() click to toggle source
# File lib/hatena/bookmark/restful/v1.rb, line 89
def api_version
  API_VERSION
end
base_uri() click to toggle source
# File lib/hatena/bookmark/restful/v1.rb, line 93
def base_uri
  BASE_URI
end
bookmark(url) click to toggle source

@return [Bookmark]

# File lib/hatena/bookmark/restful/v1.rb, line 70
def bookmark(url)
  res = connection.get("/#{api_version}/my/bookmark", url: url)
  attrs = JSON.parse(res.body)
  bookmark = Bookmark.new_from_response(attrs)
end
create_bookmark(bookmark_params) click to toggle source

@return [Bookmark]

# File lib/hatena/bookmark/restful/v1.rb, line 83
def create_bookmark(bookmark_params)
  res = connection.post("/#{api_version}/my/bookmark", bookmark_params)
  attrs = JSON.parse(res.body)
  bookmark = Bookmark.new_from_response(attrs)
end
delete_bookmark(url) click to toggle source

@return [Boolean]

# File lib/hatena/bookmark/restful/v1.rb, line 77
def delete_bookmark(url)
  res = connection.delete("/#{api_version}/my/bookmark", url: url)
  res.success?
end
entry(url) click to toggle source

@return [Entry]

# File lib/hatena/bookmark/restful/v1.rb, line 63
def entry(url)
  res = connection.get("/#{api_version}/entry", url: url)
  attrs = JSON.parse(res.body)
  entry = Entry.new_from_response(attrs)
end
my() click to toggle source

@return [User]

# File lib/hatena/bookmark/restful/v1.rb, line 48
def my
  res = connection.get("/#{api_version}/my")
  attrs = JSON.parse(res.body)
  user = User.new_from_response(attrs)
end
my_tags() click to toggle source

@return [<Tag>]

# File lib/hatena/bookmark/restful/v1.rb, line 55
def my_tags
  res = connection.get("/#{api_version}/my/tags")
  attrs = JSON.parse(res.body)
  raw_tags = attrs.fetch('tags')
  tags = raw_tags.map {|t| Tag.new_from_response(t) }
end

Private Instance Methods

connection() click to toggle source
# File lib/hatena/bookmark/restful/v1.rb, line 99
def connection
  @connection ||= Faraday.new(url: base_uri) do |faraday|
    faraday.request :url_encoded
    faraday.options.params_encoder = Faraday::FlatParamsEncoder
    faraday.request :oauth,
      consumer_key:    @credentials.consumer_key,
      consumer_secret: @credentials.consumer_secret,
      token:           @credentials.access_token,
      token_secret:    @credentials.access_token_secret
    faraday.headers["User-Agent"] = "hatena-bookmark-restful"
    faraday.adapter Faraday.default_adapter
  end
end