class GroupMe::Client
Constants
- API_BASE_URL
- API_DEFAULT_HEADER
Attributes
access_token[RW]
Public Class Methods
new(args = {})
click to toggle source
# File lib/groupme/client.rb, line 10 def initialize(args = {}) @access_token = args[:access_token] || GroupMe.configuration.access_token @client = HTTPClient.new(base_url: API_BASE_URL, default_header: API_DEFAULT_HEADER) end
Public Instance Methods
delete(path, query = {})
click to toggle source
# File lib/groupme/client.rb, line 23 def delete(path, query = {}) request(:delete, path, query: query) end
get(path, query = {})
click to toggle source
# File lib/groupme/client.rb, line 15 def get(path, query = {}) request(:get, path, query: query) end
post(path, body = {})
click to toggle source
# File lib/groupme/client.rb, line 19 def post(path, body = {}) request(:post, path, body: body) end
request(method, path, query: {}, body: nil)
click to toggle source
# File lib/groupme/client.rb, line 27 def request(method, path, query: {}, body: nil) response = @client.request(method, path, { token: @access_token }.merge(query), body&.to_json) [parse_response_body(response), response.status] end
Private Instance Methods
blank?(string)
click to toggle source
# File lib/groupme/client.rb, line 41 def blank?(string) string =~ /\A[[:space:]]*\z/ end
parse_response_body(response)
click to toggle source
# File lib/groupme/client.rb, line 34 def parse_response_body(response) return response.reason unless response.ok? return if blank?(response.body) JSON.parse(response.body, symbolize_names: true).fetch(:response) end