class Fog::Tasks::Wunderlist::Real

Public Class Methods

new(options={}) click to toggle source
# File lib/fog/wunderlist/tasks.rb, line 60
def initialize(options={})
  @username   = options[:wunderlist_username]
  @password   = options[:wunderlist_password]
  @api_url    = options[:wunderlist_api_url] || 'https://api.wunderlist.com'
  @connection = Fog::Connection.new(@api_url)
  @auth_data  = authenticate
end

Public Instance Methods

create_list(title, attributes = {}) click to toggle source
# File lib/fog/wunderlist/requests/tasks/create_list.rb, line 6
def create_list(title, attributes = {})
  request(
    :expects  => [201],
    :method   => 'POST',
    :path     => "/me/lists",
    :body     => { :title => title }.merge(attributes)
  )
end
create_task(title, list_id, attributes = {}) click to toggle source
# File lib/fog/wunderlist/requests/tasks/create_task.rb, line 6
def create_task(title, list_id, attributes = {})
  request(
    :expects  => [201],
    :method   => 'POST',
    :path     => "/me/tasks",
    :body     => { 
      :title => title,
      :list_id => list_id
    }.merge(attributes)
  )
end
delete_list(id) click to toggle source
# File lib/fog/wunderlist/requests/tasks/delete_list.rb, line 6
def delete_list(id)
  request(
    :expects  => [200],
    :method   => 'DELETE',
    :path     => "/#{id}"
  )
end
delete_task(id) click to toggle source
# File lib/fog/wunderlist/requests/tasks/delete_task.rb, line 6
def delete_task(id)
  request(
    :expects  => [200],
    :method   => 'DELETE',
    :path     => "/#{id}"
  )
end
get_task(id) click to toggle source
# File lib/fog/wunderlist/requests/tasks/get_task.rb, line 6
def get_task(id)
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => "/me/#{id}"
  )
end
list_lists() click to toggle source
# File lib/fog/wunderlist/requests/tasks/list_lists.rb, line 6
def list_lists
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => '/me/lists'
  )
end
list_tasks() click to toggle source
# File lib/fog/wunderlist/requests/tasks/list_tasks.rb, line 6
def list_tasks
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => '/me/tasks'
  )
end
reload() click to toggle source
# File lib/fog/wunderlist/tasks.rb, line 68
def reload
  @connection.reset
end
request(params = {}) click to toggle source
# File lib/fog/wunderlist/tasks.rb, line 72
def request(params = {})
  params.merge!(
    :headers => { 
      'Authorization' => "Bearer #{@auth_data['token']}",
      'Content-Type'  => 'application/json; charset=utf-8'
    },
    :body => Fog::JSON.encode(params[:body])
  )
  response = @connection.request(params)

  unless response.body.empty?
    response.body = Fog::JSON.decode(response.body)
    #if response.body['status'] != 'OK'
    #  raise Fog::Errors::Error.new
    #end
  end
  response
end
update_list(id, attributes = {}) click to toggle source
# File lib/fog/wunderlist/requests/tasks/update_list.rb, line 6
def update_list(id, attributes = {})
  request(
    :expects  => [200],
    :method   => 'PUT',
    :path     => "#{id}",
    :body     => attributes 
  )
end
update_task(id, attributes = {}) click to toggle source
# File lib/fog/wunderlist/requests/tasks/update_task.rb, line 6
def update_task(id, attributes = {})
  request(
    :expects  => [200],
    :method   => 'PUT',
    :path     => "#{id}",
    :body     => attributes 
  )
end

Private Instance Methods

authenticate() click to toggle source
# File lib/fog/wunderlist/tasks.rb, line 92
def authenticate
  res = @connection.request :method  => 'POST', 
                            :path    => '/login',
                            :expects => [200],
                            :body    => Fog::JSON.encode({ 
                              :email => @username, 
                              :password => @password
                            })
  Fog::JSON.decode(res.body)
end