groupme-api 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0daa77a1125f594a36516d0261a6a7305ae1b4ad
4
- data.tar.gz: 0696d49ec9c0df194a55334df9d7e39a87985732
3
+ metadata.gz: 1648018d16b02811eb7784f5991ebe35e39f7d15
4
+ data.tar.gz: 60300f9a257451b624ce2595831c3876133eae3e
5
5
  SHA512:
6
- metadata.gz: 726a2b078044f61040470d379ac53855e8b336a9f79f807cb90ee933606c89f294057fd2dce3a0a420099bbf18976757a7c4923763dc0d21e56b434410930bf2
7
- data.tar.gz: 066ad84925a9742ec651d4dcbcf9e5f092cdcae47ac62b2351bd1293c3089af70a48bc0043cab38b25b7fd4d1ffc2572b8bd663046615da2f27f26b8955559bf
6
+ metadata.gz: a45fc143af1b07948d439808258633460c0d8e62b044284c2ac35ba9f4ec7b57f3dfb04a8f9ee719b2b31adad72f8b7589bcb8dfdf82800b6c5b94cc67bece83
7
+ data.tar.gz: 8dd9aa132200252fa349080e0b5430e783d4226e452009263cd37aff606f3cedf5c0c447bd7fb72539ed69b40bcc19e36ba589b03203fc03ebf29f9580d64e40
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- groupme-api (0.6.1)
4
+ groupme-api (0.7.0)
5
5
  httpclient (~> 2.8)
6
6
 
7
7
  GEM
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GroupMe
4
+ class ImageClient
5
+ API_BASE_URL = 'https://image.groupme.com/'
6
+
7
+ attr_accessor :access_token
8
+
9
+ def initialize(args = {})
10
+ @access_token = args[:access_token] || GroupMe.configuration.access_token
11
+ @client = HTTPClient.new(base_url: API_BASE_URL, default_header: { 'X-Access-Token': @access_token, 'Content-Type': 'image/jpeg' })
12
+ end
13
+
14
+ def upload(body = {})
15
+ response = @client.post('pictures', body&.to_json)\
16
+
17
+ return response.reason unless response.ok?
18
+
19
+ image = JSON.parse(response.body, symbolize_names: true)
20
+ image[:payload][:url]
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GroupMe
4
- VERSION = '0.6.1'
4
+ VERSION = '0.7.0'
5
5
  end
data/lib/groupme.rb CHANGED
@@ -7,6 +7,7 @@ require 'groupme/client'
7
7
  require 'groupme/configuration'
8
8
  require 'groupme/errors'
9
9
  require 'groupme/group'
10
+ require 'groupme/image_client'
10
11
  require 'groupme/version'
11
12
 
12
13
  module GroupMe
@@ -3,13 +3,11 @@
3
3
  RSpec.describe GroupMe::Group do
4
4
  include_context :with_default_groupme_configuration
5
5
 
6
- let(:base_url) { GroupMe::Client::API_BASE_URL }
7
-
8
6
  describe '#all' do
9
7
  it 'should send the correct HTTP request' do
10
8
  _groups = GroupMe::Group.all
11
9
 
12
- expect(WebMock).to have_requested(:get, "#{base_url}groups").with(query: { token: access_token, omit: :memberships, per_page: GroupMe.configuration.groups_per_page })
10
+ expect(WebMock).to have_requested(:get, 'https://api.groupme.com/v3/groups').with(query: { token: access_token, omit: :memberships, per_page: GroupMe.configuration.groups_per_page })
13
11
  end
14
12
  end
15
13
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe GroupMe::ImageClient do
4
+ include_context :with_default_groupme_configuration
5
+
6
+ let(:image_blob) { '\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01\b\x03\x00\x00\x00(\xCB4\xBB\x00\x00\x00\x03PLTE\xDD.DX\x9D\x17\x1C\x00\x00\x00\x01tRNS\xD8\xC8\xEE\x82\x80\x00\x00\x00\nIDATx\x01c`\x00\x00\x00\x02\x00\x01su\x01\x18\x00\x00\x00\x00IEND\xAEB`\x82' }
7
+
8
+ describe '#new' do
9
+ it 'should send the correct HTTP request' do
10
+ _image_client = GroupMe::ImageClient.new
11
+ _image_client.upload(image_blob)
12
+
13
+ expect(WebMock).to have_requested(:post, 'https://image.groupme.com/pictures').with(body: image_blob.to_json)
14
+ end
15
+ end
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groupme-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kinnell Shah
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-10 00:00:00.000000000 Z
11
+ date: 2019-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -160,11 +160,13 @@ files:
160
160
  - lib/groupme/configuration.rb
161
161
  - lib/groupme/errors.rb
162
162
  - lib/groupme/group.rb
163
+ - lib/groupme/image_client.rb
163
164
  - lib/groupme/version.rb
164
165
  - lib/groupme_api.rb
165
166
  - spec/groupme/client_spec.rb
166
167
  - spec/groupme/configuration_spec.rb
167
168
  - spec/groupme/group_spec.rb
169
+ - spec/groupme/image_client_spec.rb
168
170
  - spec/groupme_spec.rb
169
171
  - spec/spec_helper.rb
170
172
  - spec/support/groupme.rb