Class: BackpackAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/backpack_api.rb

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (BackpackAPI) initialize(username, token)

A new instance of BackpackAPI



10
11
12
13
# File 'lib/backpack_api.rb', line 10

def initialize(username, token)
  @username, @token = username, token
  connect
end

Instance Attribute Details

- (Object) current_page_id

Returns the value of attribute current_page_id



8
9
10
# File 'lib/backpack_api.rb', line 8

def current_page_id
  @current_page_id
end

- (Object) token

Returns the value of attribute token



8
9
10
# File 'lib/backpack_api.rb', line 8

def token
  @token
end

- (Object) username

Returns the value of attribute username



8
9
10
# File 'lib/backpack_api.rb', line 8

def username
  @username
end

Instance Method Details

- (Object) connect(use_ssl = false)



15
16
17
18
19
# File 'lib/backpack_api.rb', line 15

def connect(use_ssl = false)
  @connection = Net::HTTP.new("#{@username}.backpackit.com", use_ssl ? 443 : 80)
  @connection.use_ssl = use_ssl
  @connection.verify_mode = OpenSSL::SSL::VERIFY_NONE if use_ssl
end

- (Object) create_item(content, page_id = current_page_id) Also known as: ci



52
53
54
# File 'lib/backpack_api.rb', line 52

def create_item(content, page_id = current_page_id)
  request "page/#{page_id}/items/add", "item" => { "content" => content }
end

- (Object) create_note(title, body, page_id = current_page_id) Also known as: cn



85
86
87
# File 'lib/backpack_api.rb', line 85

def create_note(title, body, page_id = current_page_id)
  request "page/#{page_id}/notes/create", "note" => { "title" => title, "body" => body }
end

- (Object) create_page(title, body) Also known as: cp



139
140
141
# File 'lib/backpack_api.rb', line 139

def create_page(title, body)
  request "pages/new", "page" => { "title" => title, "description" => body }
end

- (Object) create_reminder(content, remind_at = "")) Also known as: cr



188
189
190
# File 'lib/backpack_api.rb', line 188

def create_reminder(content, remind_at = "")
  request "reminders/create", "reminder" => { "content" => content, "remind_at" => remind_at }
end

- (Object) destroy_email(email_id, page_id = current_page_id) Also known as: de



113
114
115
# File 'lib/backpack_api.rb', line 113

def destroy_email(email_id, page_id = current_page_id)
  request "page/#{page_id}/emails/destroy/#{email_id}"
end

- (Object) destroy_item(item_id, page_id = current_page_id) Also known as: di



62
63
64
# File 'lib/backpack_api.rb', line 62

def destroy_item(item_id, page_id = current_page_id)
  request "page/#{page_id}/items/destroy/#{item_id}"
end

- (Object) destroy_note(note_id, page_id = current_page_id) Also known as: dn



95
96
97
# File 'lib/backpack_api.rb', line 95

def destroy_note(note_id, page_id = current_page_id)
  request "page/#{page_id}/notes/destroy/#{note_id}"
end

- (Object) destroy_page(page_id = current_page_id) Also known as: dp



149
150
151
# File 'lib/backpack_api.rb', line 149

def destroy_page(page_id = current_page_id)
  request "page/#{page_id}/destroy"
end

- (Object) destroy_reminder(reminder_id) Also known as: dr



198
199
200
# File 'lib/backpack_api.rb', line 198

def destroy_reminder(reminder_id)
  request "reminders/destroy/#{reminder_id}"
end


164
165
166
# File 'lib/backpack_api.rb', line 164

def link_page(linked_page_id, page_id = current_page_id)
  request "page/#{page_id}/link", "linked_page_id" => linked_page_id
end

- (Object) list_emails(page_id = current_page_id) Also known as: le

Emails ----



103
104
105
# File 'lib/backpack_api.rb', line 103

def list_emails(page_id = current_page_id)
  request "page/#{page_id}/emails/list"
end

- (Object) list_items(page_id = current_page_id)

Items ----



47
48
49
# File 'lib/backpack_api.rb', line 47

def list_items(page_id = current_page_id)
  request "page/#{page_id}/items/list"
end

- (Object) list_notes(page_id = current_page_id) Also known as: li

Notes ----



80
81
82
# File 'lib/backpack_api.rb', line 80

def list_notes(page_id = current_page_id)
  request "page/#{page_id}/notes/list"
end

- (Object) list_pages Also known as: lp

Pages ----



134
135
136
# File 'lib/backpack_api.rb', line 134

def list_pages
  request "pages/all"
end

- (Object) list_pages_with_tag(tag_id) Also known as: lpt

Tags ----



121
122
123
# File 'lib/backpack_api.rb', line 121

def list_pages_with_tag(tag_id)
  request "tags/select/#{tag_id}"
end

- (Object) list_reminders Also known as: lr

Reminders ---



183
184
185
# File 'lib/backpack_api.rb', line 183

def list_reminders
  request "reminders"
end

- (Object) move_item(item_id, direction, page_id = current_page_id) Also known as: mi



72
73
74
# File 'lib/backpack_api.rb', line 72

def move_item(item_id, direction, page_id = current_page_id)
  request "page/#{page_id}/items/move/#{item_id}", "direction" => "move_#{direction}"
end

- (Object) page_id=(id) Also known as: pi=



21
22
23
# File 'lib/backpack_api.rb', line 21

def page_id=(id)
  self.current_page_id = id
end

- (Object) request(path, parameters = {}, second_try = false) Also known as: r



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/backpack_api.rb', line 26

def request(path, parameters = {}, second_try = false)
  parameters = { "token" => @token }.merge(parameters)

  response = @connection.post("/ws/#{path}", parameters.to_yaml, "X-POST_DATA_FORMAT" => "yaml")

  if response.code == "200"
    result = XmlSimple.xml_in(response.body)
    result.delete "success"
    result.empty? ? true : result
  elsif response.code == "302" && !second_try
    connect(true)
    request(path, parameters, true)
  else
    raise "Error occured (#{response.code}): #{response.body}"
  end
end

- (Object) share_page(email_addresses, public_page = nil, page_id = current_page_id)



174
175
176
177
178
# File 'lib/backpack_api.rb', line 174

def share_page(email_addresses, public_page = nil, page_id = current_page_id)
  parameters = { "email_addresses" => email_addresses }
  parameters = parameters.merge({ "page" => { "public" => public_page ? "1" : "0" }}) unless public_page.nil?
  request "page/#{page_id}/share", parameters
end

- (Object) show_email(email_id, page_id = current_page_id) Also known as: se



108
109
110
# File 'lib/backpack_api.rb', line 108

def show_email(email_id, page_id = current_page_id)
  request "page/#{page_id}/emails/show/#{email_id}"
end

- (Object) show_page(page_id = current_page_id) Also known as: sp



144
145
146
# File 'lib/backpack_api.rb', line 144

def show_page(page_id = current_page_id)
  request "page/#{page_id}"
end

- (Object) tag_page(tags, page_id = current_page_id) Also known as: tp



126
127
128
# File 'lib/backpack_api.rb', line 126

def tag_page(tags, page_id = current_page_id)
  request "page/#{page_id}/tags/tag", "tags" => tags
end

- (Object) toggle_item(item_id, page_id = current_page_id) Also known as: ti



67
68
69
# File 'lib/backpack_api.rb', line 67

def toggle_item(item_id, page_id = current_page_id)
  request "page/#{page_id}/items/toggle/#{item_id}"
end


169
170
171
# File 'lib/backpack_api.rb', line 169

def unlink_page(linked_page_id, page_id = current_page_id)
  request "page/#{page_id}/unlink", "linked_page_id" => linked_page_id
end

- (Object) update_body(body, page_id = current_page_id) Also known as: ub



159
160
161
# File 'lib/backpack_api.rb', line 159

def update_body(body, page_id = current_page_id)
  request "page/#{page_id}/update_body", "page" => { "description" => body }
end

- (Object) update_item(item_id, content, page_id = current_page_id) Also known as: ui



57
58
59
# File 'lib/backpack_api.rb', line 57

def update_item(item_id, content, page_id = current_page_id)
  request "page/#{page_id}/items/update/#{item_id}", "item" => { "content" => content }
end

- (Object) update_note(note_id, title, body, page_id = current_page_id) Also known as: un



90
91
92
# File 'lib/backpack_api.rb', line 90

def update_note(note_id, title, body, page_id = current_page_id)
  request "page/#{page_id}/notes/update/#{note_id}", "note" => { "title" => title, "body" => body }
end

- (Object) update_reminder(reminder_id, content, remind_at) Also known as: ur



193
194
195
# File 'lib/backpack_api.rb', line 193

def update_reminder(reminder_id, content, remind_at)
  request "reminders/update/#{reminder_id}", "reminder" => { "content" => content, "remind_at" => remind_at }
end

- (Object) update_title(title, page_id = current_page_id) Also known as: ut



154
155
156
# File 'lib/backpack_api.rb', line 154

def update_title(title, page_id = current_page_id)
  request "page/#{page_id}/update_title", "page" => { "title" => title }
end