class MyAnimeList::Api
Constants
- BASE_URL
Public Instance Methods
add(type, id, params = {})
click to toggle source
# File lib/myanimelist/api.rb, line 12 def add(type, id, params = {}) request("#{BASE_URL}/#{type}list/add/#{id}.xml", params) == 'Created' end
remove(type, id)
click to toggle source
# File lib/myanimelist/api.rb, line 20 def remove(type, id) request("#{BASE_URL}/#{type}list/delete/#{id}.xml") == 'Deleted' end
search(type, name)
click to toggle source
# File lib/myanimelist/api.rb, line 6 def search(type, name) body = request("#{BASE_URL}/#{type}/search.xml?q=#{CGI::escape name}") Serializer.new(body).entry end
update(type, id, params = {})
click to toggle source
# File lib/myanimelist/api.rb, line 16 def update(type, id, params = {}) request("#{BASE_URL}/#{type}list/update/#{id}.xml", params) == 'Updated' end
verify_credentials!()
click to toggle source
# File lib/myanimelist/api.rb, line 24 def verify_credentials! body = request("#{BASE_URL}/account/verify_credentials.xml") Serializer.new(body).call end
Private Instance Methods
build_params(url, params)
click to toggle source
# File lib/myanimelist/api.rb, line 42 def build_params(url, params) { method: :get, url: url, user: Credentials.username, password: Credentials.password, content_type: :xml }.merge( headers(params) ) end
headers(params)
click to toggle source
# File lib/myanimelist/api.rb, line 52 def headers(params) return {} if params.empty? { headers: { params: { data: XmlSimple.xml_out(params, rootname: 'entry', noattr: true, noindent: true, keeproot: false) } } } end
request(url, params = {})
click to toggle source
# File lib/myanimelist/api.rb, line 32 def request(url, params = {}) RestClient::Request.new( build_params(url, params) ).execute do |resp| if resp.code == 200 || resp.code == 201 resp.body else raise ApiException.new(resp.body) end end end