Class: Fog::Tasks::Wunderlist::Real

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/wunderlist/tasks.rb,
lib/fog/wunderlist/requests/tasks/get_task.rb,
lib/fog/wunderlist/requests/tasks/list_lists.rb,
lib/fog/wunderlist/requests/tasks/list_tasks.rb,
lib/fog/wunderlist/requests/tasks/create_list.rb,
lib/fog/wunderlist/requests/tasks/create_task.rb,
lib/fog/wunderlist/requests/tasks/delete_list.rb,
lib/fog/wunderlist/requests/tasks/delete_task.rb,
lib/fog/wunderlist/requests/tasks/update_list.rb,
lib/fog/wunderlist/requests/tasks/update_task.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Real

Returns a new instance of Real.



60
61
62
63
64
65
66
# 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

Instance Method Details

#create_list(title, attributes = {}) ⇒ Object



6
7
8
9
10
11
12
13
# 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 = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# 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) ⇒ Object



6
7
8
9
10
11
12
# 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) ⇒ Object



6
7
8
9
10
11
12
# 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) ⇒ Object



6
7
8
9
10
11
12
# 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_listsObject



6
7
8
9
10
11
12
# File 'lib/fog/wunderlist/requests/tasks/list_lists.rb', line 6

def list_lists
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => '/me/lists'
  )
end

#list_tasksObject



6
7
8
9
10
11
12
# File 'lib/fog/wunderlist/requests/tasks/list_tasks.rb', line 6

def list_tasks
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => '/me/tasks'
  )
end

#reloadObject



68
69
70
# File 'lib/fog/wunderlist/tasks.rb', line 68

def reload
  @connection.reset
end

#request(params = {}) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# 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 = {}) ⇒ Object



6
7
8
9
10
11
12
13
# 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 = {}) ⇒ Object



6
7
8
9
10
11
12
13
# 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