Sha256: 1321641be41a320765c15e36b32f998f350304a68d0dd9b72f0fd7ed382aebc7
Contents?: true
Size: 1.27 KB
Versions: 4
Compression:
Stored size: 1.27 KB
Contents
# frozen_string_literal: true module GroupMe class Client API_BASE_URL = 'https://api.groupme.com/v3/' API_DEFAULT_HEADER = { 'Content-Type': 'application/json' }.freeze attr_accessor :access_token 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 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 def get(path, query = {}) request(:get, path, query: query) end def post(path, body = {}) request(:post, path, body: body) end def delete(path, query = {}) request(:delete, path, query: query) end private def parse_response_body(response) return response.reason unless response.ok? unless blank?(response.body) JSON.parse(response.body, symbolize_names: true).fetch(:response) end end def blank?(string) string =~ /\A[[:space:]]*\z/ end end def self.client @client ||= Client.new end def self.client=(client) @client = client end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
groupme-api-0.8.0 | lib/groupme/client.rb |
groupme-api-0.7.1 | lib/groupme/client.rb |
groupme-api-0.7.0 | lib/groupme/client.rb |
groupme-api-0.6.1 | lib/groupme/client.rb |