class Strawpoll::API
Constants
- API_URI
Public Class Methods
create(params)
click to toggle source
# File lib/strawpoll/api.rb, line 14 def create(params) perform("/api/v2/polls", :post, params).parsed_body.symbolize_keys end
get(id)
click to toggle source
# File lib/strawpoll/api.rb, line 10 def get(id) perform("/api/v2/polls/#{id}", :get).parsed_body.symbolize_keys end
http()
click to toggle source
# File lib/strawpoll/api.rb, line 6 def http @http ||= Net::HTTP.new(API_URI.host, API_URI.port) end
patch(id, params)
click to toggle source
# File lib/strawpoll/api.rb, line 18 def patch(id, params) perform("/api/v2/polls/#{id}", :patch, params).parsed_body.symbolize_keys end
perform(uri, method, params = {})
click to toggle source
# File lib/strawpoll/api.rb, line 22 def perform(uri, method, params = {}) request = case method when :get Net::HTTP::Get.new(uri) when :post Net::HTTP::Post.new(uri).tap do |request| request.set_form_data(params) end when :patch Net::HTTP::Patch.new(uri).tap do |request| request.body = params.to_json request.content_type = 'application/json' end end http.request(request).tap do |response| raise Strawpoll::API::Error.new(response.body) unless response.kind_of? Net::HTTPSuccess response.parsed_body = JSON.parse(response.body) rescue {} end end