class Pushbullet::Client
Attributes
TODO: Add uploads TODO: Add ephemerals TODO: Websockets TODO: Universal copy/paste TODO: Encryption TODO: Pagination TODO: Limits TODO: Date parsing TODO: Create api client creation library
TODO: Add uploads TODO: Add ephemerals TODO: Websockets TODO: Universal copy/paste TODO: Encryption TODO: Pagination TODO: Limits TODO: Date parsing TODO: Create api client creation library
TODO: Add uploads TODO: Add ephemerals TODO: Websockets TODO: Universal copy/paste TODO: Encryption TODO: Pagination TODO: Limits TODO: Date parsing TODO: Create api client creation library
TODO: Add uploads TODO: Add ephemerals TODO: Websockets TODO: Universal copy/paste TODO: Encryption TODO: Pagination TODO: Limits TODO: Date parsing TODO: Create api client creation library
Public Class Methods
This is the version of the API docs this client was built off-of
# File lib/pushbullet/client.rb, line 38 def self.api_version 'v2 2020-10-17' end
# File lib/pushbullet/client.rb, line 33 def self.compatible_api_version 'v2' end
# File lib/pushbullet/client.rb, line 26 def initialize(access_token:, base_path: API_V2_BASE_PATH, port: 80, limit: 500) @access_token = access_token @base_path = base_path @port = port @limit = limit end
Private Instance Methods
# File lib/pushbullet/client.rb, line 92 def body_is_missing?(response) response.body.nil? || response.body.empty? end
# File lib/pushbullet/client.rb, line 88 def body_is_present?(response) !body_is_missing?(response) end
# File lib/pushbullet/client.rb, line 112 def construct_base_path(path, params) constructed_path = "#{base_path}/#{path}" if params == {} constructed_path else "#{constructed_path}?#{process_params(params)}" end end
# File lib/pushbullet/client.rb, line 77 def construct_metadata(response, start_time, end_time) total_time = end_time - start_time { 'start_time' => start_time, 'end_time' => end_time, 'total_time' => total_time, 'cursor' => response.dig('cursor') } end
# File lib/pushbullet/client.rb, line 69 def construct_response_object(response, path, start_time, end_time) { 'body' => parse_body(response, path), 'headers' => response.headers, 'metadata' => construct_metadata(response, start_time, end_time) } end
# File lib/pushbullet/client.rb, line 108 def micro_second_time_now (Time.now.to_f * 1_000_000).to_i end
# File lib/pushbullet/client.rb, line 96 def parse_body(response, path) parsed_response = JSON.parse(response.body) # Purposely not using HTTParty if parsed_response.dig(path.to_s) parsed_response.dig(path.to_s) else parsed_response end rescue JSON::ParserError => _e response.body end
# File lib/pushbullet/client.rb, line 126 def process_cursor(cursor, params: {}) unless cursor.nil? || cursor.empty? params['cursor'] = cursor end end
# File lib/pushbullet/client.rb, line 122 def process_params(params) params.keys.map { |key| "#{key}=#{params[key]}" }.join('&') end