lib/simplenote.rb in simplenote-0.1.0 vs lib/simplenote.rb in simplenote-0.2.0

- old
+ new

@@ -3,21 +3,48 @@ require 'crack' class SimpleNote include HTTParty attr_reader :token, :email + format :json base_uri 'https://simple-note.appspot.com/api' def login(email, password) encoded_body = Base64.encode64({:email => email, :password => password}.to_params) @email = email @token = self.class.post "/login", :body => encoded_body + raise "Login failed" unless @token.response.is_a?(Net::HTTPOK) end def get_index - self.class.get "/index", :query => { :auth => token, :email => email }, :format => :json + self.class.get "/index", :query => request_hash, :format => :json end def get_note(key) - self.class.get "/note", :query => { :key => key, :auth => token, :email => email } + out = self.class.get "/note", :query => request_hash.merge(:key => key) + out.response.is_a?(Net::HTTPNotFound) ? nil : out + end + + def delete_note(key) + out = self.class.get "/delete", :query => request_hash.merge(:key => key) + raise "Couldn't delete note" unless out.response.is_a?(Net::HTTPOK) + out + end + + def update_note(key, content) + self.class.post "/note", :query => request_hash.merge(:key => key), :body => Base64.encode64(content) + end + + def create_note(content) + self.class.post "/note", :query => request_hash, :body => Base64.encode64(content) + end + + def search(search_string, max_results=10) + self.class.get "/search", :query => request_hash.merge(:query => search_string, :results => max_results) + end + + private + + def request_hash + { :auth => token, :email => email } end end