Class: Hatena::Bookmark::Restful::V1

Inherits:
Object
  • Object
show all
Defined in:
lib/hatena/bookmark/restful/v1.rb,
lib/hatena/bookmark/restful/v1/tag.rb,
lib/hatena/bookmark/restful/v1/user.rb,
lib/hatena/bookmark/restful/v1/entry.rb,
lib/hatena/bookmark/restful/v1/bookmark.rb,
lib/hatena/bookmark/restful/v1/response_object.rb

Defined Under Namespace

Modules: ResponseObject Classes: Bookmark, Credentials, Entry, Tag, User

Constant Summary collapse

BASE_URI =
'http://api.b.hatena.ne.jp'
API_VERSION =
'1'

Instance Method Summary collapse

Constructor Details

#initialize(credentials) ⇒ V1

Returns a new instance of V1.



43
44
45
# File 'lib/hatena/bookmark/restful/v1.rb', line 43

def initialize(credentials)
  @credentials = credentials
end

Instance Method Details

#api_versionObject



89
90
91
# File 'lib/hatena/bookmark/restful/v1.rb', line 89

def api_version
  API_VERSION
end

#base_uriObject



93
94
95
# File 'lib/hatena/bookmark/restful/v1.rb', line 93

def base_uri
  BASE_URI
end

#bookmark(url) ⇒ Bookmark

Returns:



70
71
72
73
74
# 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) ⇒ Bookmark

Returns:



83
84
85
86
87
# 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) ⇒ Boolean

Returns:

  • (Boolean)


77
78
79
80
# 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) ⇒ Entry

Returns:



63
64
65
66
67
# 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

#myUser

Returns:



48
49
50
51
52
# 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<Tag>

Returns:



55
56
57
58
59
60
# 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