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
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