subscriptor_client 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.travis.yml +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +6 -0
- data/lib/subscriptor_client/base.rb +17 -0
- data/lib/subscriptor_client/entities_client.rb +59 -0
- data/lib/subscriptor_client/subscriptions_client.rb +56 -0
- data/lib/subscriptor_client/version.rb +3 -0
- data/lib/subscriptor_client.rb +27 -0
- data/spec/fixtures/vcr_cassettes/add_credits_success.yml +58 -0
- data/spec/fixtures/vcr_cassettes/create_success.yml +58 -0
- data/spec/fixtures/vcr_cassettes/destroy_success.yml +54 -0
- data/spec/fixtures/vcr_cassettes/index_success.yml +52 -0
- data/spec/fixtures/vcr_cassettes/show_success.yml +52 -0
- data/spec/fixtures/vcr_cassettes/subscriptions/add_credits_success.yml +58 -0
- data/spec/fixtures/vcr_cassettes/subscriptions/create_success.yml +58 -0
- data/spec/fixtures/vcr_cassettes/subscriptions/destroy_success.yml +54 -0
- data/spec/fixtures/vcr_cassettes/subscriptions/index_success.yml +52 -0
- data/spec/fixtures/vcr_cassettes/subscriptions/remove_credits_success.yml +58 -0
- data/spec/fixtures/vcr_cassettes/subscriptions/show_success.yml +52 -0
- data/spec/fixtures/vcr_cassettes/subscriptions/update_success.yml +58 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/subscriptor_client/base_spec.rb +13 -0
- data/spec/subscriptor_client/entities_client_spec.rb +74 -0
- data/spec/subscriptor_client/subscriptions_client_spec.rb +106 -0
- data/subscriptor_client.gemspec +33 -0
- metadata +228 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e1adea3712b3b1607d9d298e85a4d1e5b2050f29
|
4
|
+
data.tar.gz: cef4c9fbb2d5820b2cf6329ef44e9c3a9c68f975
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6edd814a24dc8236b4d786e5fa9886b83edec87add2b5bd11173f51a7d3f2dec537d93581e69ebd283b01c27a6ff203b1358d4b23bcde68381f553475d3cc1f3
|
7
|
+
data.tar.gz: b87cffdbba05d6300a5851f23259a8af58526742fcb3bac513168e7a394b6faca173875bf8098d360a462f32b7899e80c21d145afe74628c991cdb650e8d5df9
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
language: ruby
|
2
|
+
|
3
|
+
rvm:
|
4
|
+
- 2.1.0
|
5
|
+
|
6
|
+
gemfile:
|
7
|
+
- Gemfile
|
8
|
+
|
9
|
+
cache: bundler
|
10
|
+
|
11
|
+
env:
|
12
|
+
matrix:
|
13
|
+
- TEST_SUITE="spec"
|
14
|
+
|
15
|
+
|
16
|
+
before_script: "bundle update"
|
17
|
+
|
18
|
+
script:
|
19
|
+
- bundle exec rake $TEST_SUITE
|
20
|
+
|
21
|
+
notifications:
|
22
|
+
email: false
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 johnmcconnell
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# SubscriptorClient
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'subscriptor_client'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install subscriptor_client
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
TODO: Write usage instructions here
|
24
|
+
|
25
|
+
## Contributing
|
26
|
+
|
27
|
+
1. Fork it ( https://github.com/[my-github-username]/subscriptor_client/fork )
|
28
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
29
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
30
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
31
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'attr_init'
|
2
|
+
require 'subscriptor_client/entities_client'
|
3
|
+
require 'subscriptor_client/subscriptions_client'
|
4
|
+
|
5
|
+
module SubscriptorClient
|
6
|
+
class Base
|
7
|
+
reader_struct :config
|
8
|
+
|
9
|
+
def entities
|
10
|
+
@entities ||= EntitiesClient.new(config)
|
11
|
+
end
|
12
|
+
|
13
|
+
def subscriptions
|
14
|
+
@subscriptions ||= SubscriptionsClient.new(config)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
require 'json_client'
|
3
|
+
|
4
|
+
module SubscriptorClient
|
5
|
+
class EntitiesClient < JsonClient::Base
|
6
|
+
requests do |r|
|
7
|
+
r.on :index, use: JsonClient::BaseRequests::Index.new
|
8
|
+
r.on :show, use: JsonClient::BaseRequests::Show.new
|
9
|
+
r.on :create, use: JsonClient::BaseRequests::Create.new
|
10
|
+
r.on :destroy, use: JsonClient::BaseRequests::Destroy.new
|
11
|
+
r.on :update, :add_credits, :remove_credits,
|
12
|
+
use: JsonClient::BaseRequests::Update.new
|
13
|
+
end
|
14
|
+
|
15
|
+
responses do |r|
|
16
|
+
r.on :index, use: JsonClient::BaseResponses::Index
|
17
|
+
r.on :show, use: JsonClient::BaseResponses::Show
|
18
|
+
r.on :create, use: JsonClient::BaseResponses::Create
|
19
|
+
r.on :destroy, use: JsonClient::BaseResponses::Destroy
|
20
|
+
r.on :update, :add_credits, :remove_credits,
|
21
|
+
use: JsonClient::BaseResponses::Update
|
22
|
+
end
|
23
|
+
|
24
|
+
serializers do |r|
|
25
|
+
r.on :create, :update, :destroy, :add_credits, :remove_credits,
|
26
|
+
use: JsonClient::ModelSerializer.new(model_name: 'entity')
|
27
|
+
r.on :index, :show,
|
28
|
+
use: JsonClient::EmptySerializer.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def initialize(config)
|
32
|
+
super(
|
33
|
+
JsonClient::Pather.new(config[:host], 'api/v1', 'entities'),
|
34
|
+
config
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def create
|
39
|
+
super({})
|
40
|
+
end
|
41
|
+
|
42
|
+
def update(*args)
|
43
|
+
method_missing(:update, *args)
|
44
|
+
end
|
45
|
+
|
46
|
+
def add_credits(id, params)
|
47
|
+
request = requests.add_credits
|
48
|
+
params = serializers.add_credits.serialize(params)
|
49
|
+
path = extended_path('add_credits', id)
|
50
|
+
responses.add_credits.new(fetch(path, request, params))
|
51
|
+
end
|
52
|
+
|
53
|
+
protected
|
54
|
+
|
55
|
+
def extended_path(ext, id = nil)
|
56
|
+
"#{pather.path(id)}/#{ext}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
require 'json_client'
|
3
|
+
|
4
|
+
module SubscriptorClient
|
5
|
+
class SubscriptionsClient < JsonClient::Base
|
6
|
+
requests do |r|
|
7
|
+
r.on :index, use: JsonClient::BaseRequests::Index.new
|
8
|
+
r.on :show, use: JsonClient::BaseRequests::Show.new
|
9
|
+
r.on :create, use: JsonClient::BaseRequests::Create.new
|
10
|
+
r.on :destroy, use: JsonClient::BaseRequests::Destroy.new
|
11
|
+
r.on :update, :add_credits, :remove_credits,
|
12
|
+
use: JsonClient::BaseRequests::Update.new
|
13
|
+
end
|
14
|
+
|
15
|
+
responses do |r|
|
16
|
+
r.on :index, use: JsonClient::BaseResponses::Index
|
17
|
+
r.on :show, use: JsonClient::BaseResponses::Show
|
18
|
+
r.on :create, use: JsonClient::BaseResponses::Create
|
19
|
+
r.on :destroy, use: JsonClient::BaseResponses::Destroy
|
20
|
+
r.on :update, :add_credits, :remove_credits,
|
21
|
+
use: JsonClient::BaseResponses::Update
|
22
|
+
end
|
23
|
+
|
24
|
+
serializers do |r|
|
25
|
+
r.on :create, :update, :destroy, :add_credits, :remove_credits,
|
26
|
+
use: JsonClient::ModelSerializer.new(model_name: 'subscription')
|
27
|
+
r.on :index, :show,
|
28
|
+
use: JsonClient::EmptySerializer.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def initialize(config)
|
32
|
+
super(
|
33
|
+
JsonClient::Pather.new(config[:host], 'api/v1', 'subscriptions'),
|
34
|
+
config
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def add_credits(id, params)
|
39
|
+
request = requests.add_credits
|
40
|
+
path = extended_path('add_credits', id)
|
41
|
+
responses.add_credits.new(fetch(path, request, params))
|
42
|
+
end
|
43
|
+
|
44
|
+
def remove_credits(id, params)
|
45
|
+
request = requests.add_credits
|
46
|
+
path = extended_path('remove_credits', id)
|
47
|
+
responses.add_credits.new(fetch(path, request, params))
|
48
|
+
end
|
49
|
+
|
50
|
+
protected
|
51
|
+
|
52
|
+
def extended_path(ext, id = nil)
|
53
|
+
"#{pather.path(id)}/#{ext}"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'subscriptor_client/version'
|
2
|
+
require 'subscriptor_client/base'
|
3
|
+
|
4
|
+
module SubscriptorClient
|
5
|
+
@@configs = {}
|
6
|
+
@@stubbed_params = nil
|
7
|
+
|
8
|
+
def self.register_config(key, config)
|
9
|
+
@@configs[key] = config
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.new(key)
|
13
|
+
Base.new(config: @@configs[key])
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.configs
|
17
|
+
@@configs
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.reset!
|
21
|
+
@@stubbed_params = nil
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.authenticate_with!(account)
|
25
|
+
@@stubbed_params = account
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: put
|
5
|
+
uri: http://subscriptor.herokuapp.com/api/v1/entities/4/add_credits
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"api_key":"5","api_password":"subscriptor_test","entity":{"credits":2}}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '72'
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- Cowboy
|
27
|
+
Date:
|
28
|
+
- Sat, 17 Jan 2015 22:43:08 GMT
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
X-Frame-Options:
|
32
|
+
- SAMEORIGIN
|
33
|
+
X-Xss-Protection:
|
34
|
+
- 1; mode=block
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
Content-Type:
|
38
|
+
- application/json; charset=utf-8
|
39
|
+
Etag:
|
40
|
+
- '"07bd9151e9714570773fce1cb33341fb"'
|
41
|
+
Cache-Control:
|
42
|
+
- max-age=0, private, must-revalidate
|
43
|
+
Set-Cookie:
|
44
|
+
- request_method=PUT; path=/
|
45
|
+
X-Request-Id:
|
46
|
+
- 1e87e951-fecb-4bc3-9e1e-3ccbfe36fb63
|
47
|
+
X-Runtime:
|
48
|
+
- '0.236504'
|
49
|
+
Transfer-Encoding:
|
50
|
+
- chunked
|
51
|
+
Via:
|
52
|
+
- 1.1 vegur
|
53
|
+
body:
|
54
|
+
encoding: UTF-8
|
55
|
+
string: '{"id":4,"created_at":"2015-01-17T21:10:30.754Z","updated_at":"2015-01-17T21:32:00.848Z","credits_remaining":4,"active_subscription":{"id":2,"credits":4,"created_at":"2015-01-17T22:28:06.375Z","updated_at":"2015-01-17T22:43:08.831Z","credits_remaining":4}}'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Sat, 17 Jan 2015 22:43:08 GMT
|
58
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://subscriptor.herokuapp.com/api/v1/entities
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"api_key":"5","api_password":"subscriptor_test"}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '49'
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- Cowboy
|
27
|
+
Date:
|
28
|
+
- Sat, 17 Jan 2015 20:44:52 GMT
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
X-Frame-Options:
|
32
|
+
- SAMEORIGIN
|
33
|
+
X-Xss-Protection:
|
34
|
+
- 1; mode=block
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
Content-Type:
|
38
|
+
- application/json; charset=utf-8
|
39
|
+
Etag:
|
40
|
+
- '"41cadc342904ee90437b55db099b7505"'
|
41
|
+
Cache-Control:
|
42
|
+
- max-age=0, private, must-revalidate
|
43
|
+
Set-Cookie:
|
44
|
+
- request_method=POST; path=/
|
45
|
+
X-Request-Id:
|
46
|
+
- 425b47ea-b9fd-4477-98de-d2b6439a5d81
|
47
|
+
X-Runtime:
|
48
|
+
- '0.426457'
|
49
|
+
Transfer-Encoding:
|
50
|
+
- chunked
|
51
|
+
Via:
|
52
|
+
- 1.1 vegur
|
53
|
+
body:
|
54
|
+
encoding: UTF-8
|
55
|
+
string: '{"id":1,"created_at":"2015-01-17T20:44:53.735Z","updated_at":"2015-01-17T20:44:53.735Z","credits_remaining":null}'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Sat, 17 Jan 2015 20:44:54 GMT
|
58
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,54 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: delete
|
5
|
+
uri: http://subscriptor.herokuapp.com/api/v1/entities/1?api_key=5&api_password=subscriptor_test
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- Cowboy
|
23
|
+
Date:
|
24
|
+
- Sat, 17 Jan 2015 20:45:39 GMT
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
X-Frame-Options:
|
28
|
+
- SAMEORIGIN
|
29
|
+
X-Xss-Protection:
|
30
|
+
- 1; mode=block
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
Content-Type:
|
34
|
+
- application/json; charset=utf-8
|
35
|
+
Etag:
|
36
|
+
- '"d2ce28b9a7fd7e4407e2b0fd499b7fe4"'
|
37
|
+
Cache-Control:
|
38
|
+
- max-age=0, private, must-revalidate
|
39
|
+
Set-Cookie:
|
40
|
+
- request_method=DELETE; path=/
|
41
|
+
X-Request-Id:
|
42
|
+
- b5b42733-f8bf-42ec-9905-184935818b49
|
43
|
+
X-Runtime:
|
44
|
+
- '0.231555'
|
45
|
+
Transfer-Encoding:
|
46
|
+
- chunked
|
47
|
+
Via:
|
48
|
+
- 1.1 vegur
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"id":1}'
|
52
|
+
http_version:
|
53
|
+
recorded_at: Sat, 17 Jan 2015 20:45:40 GMT
|
54
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://subscriptor.herokuapp.com/api/v1/entities?api_key=5&api_password=subscriptor_test
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- Cowboy
|
23
|
+
Date:
|
24
|
+
- Sat, 17 Jan 2015 20:44:01 GMT
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
X-Frame-Options:
|
28
|
+
- SAMEORIGIN
|
29
|
+
X-Xss-Protection:
|
30
|
+
- 1; mode=block
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
Content-Type:
|
34
|
+
- application/json; charset=utf-8
|
35
|
+
Etag:
|
36
|
+
- '"273408ef8356de20281376a3f2305dff"'
|
37
|
+
Cache-Control:
|
38
|
+
- max-age=0, private, must-revalidate
|
39
|
+
X-Request-Id:
|
40
|
+
- 21460d3a-4e23-44e3-84ec-5a4a2ea4929d
|
41
|
+
X-Runtime:
|
42
|
+
- '0.222761'
|
43
|
+
Transfer-Encoding:
|
44
|
+
- chunked
|
45
|
+
Via:
|
46
|
+
- 1.1 vegur
|
47
|
+
body:
|
48
|
+
encoding: UTF-8
|
49
|
+
string: '{"entities":[]}'
|
50
|
+
http_version:
|
51
|
+
recorded_at: Sat, 17 Jan 2015 20:44:02 GMT
|
52
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://subscriptor.herokuapp.com/api/v1/entities/1?api_key=5&api_password=subscriptor_test
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- Cowboy
|
23
|
+
Date:
|
24
|
+
- Sat, 17 Jan 2015 20:45:38 GMT
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
X-Frame-Options:
|
28
|
+
- SAMEORIGIN
|
29
|
+
X-Xss-Protection:
|
30
|
+
- 1; mode=block
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
Content-Type:
|
34
|
+
- application/json; charset=utf-8
|
35
|
+
Etag:
|
36
|
+
- '"41cadc342904ee90437b55db099b7505"'
|
37
|
+
Cache-Control:
|
38
|
+
- max-age=0, private, must-revalidate
|
39
|
+
X-Request-Id:
|
40
|
+
- 38444fe2-7051-4e42-835e-871c8ff507c6
|
41
|
+
X-Runtime:
|
42
|
+
- '0.238753'
|
43
|
+
Transfer-Encoding:
|
44
|
+
- chunked
|
45
|
+
Via:
|
46
|
+
- 1.1 vegur
|
47
|
+
body:
|
48
|
+
encoding: UTF-8
|
49
|
+
string: '{"id":1,"created_at":"2015-01-17T20:44:53.735Z","updated_at":"2015-01-17T20:44:53.735Z","credits_remaining":null}'
|
50
|
+
http_version:
|
51
|
+
recorded_at: Sat, 17 Jan 2015 20:45:40 GMT
|
52
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: put
|
5
|
+
uri: http://subscriptor.herokuapp.com/api/v1/subscriptions/2/add_credits
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"api_key":"5","api_password":"subscriptor_test","credits":2}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '61'
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- Cowboy
|
27
|
+
Date:
|
28
|
+
- Sat, 17 Jan 2015 22:30:37 GMT
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
X-Frame-Options:
|
32
|
+
- SAMEORIGIN
|
33
|
+
X-Xss-Protection:
|
34
|
+
- 1; mode=block
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
Content-Type:
|
38
|
+
- application/json; charset=utf-8
|
39
|
+
Etag:
|
40
|
+
- '"bc14f1553ae497fee5e8e9f7415014b2"'
|
41
|
+
Cache-Control:
|
42
|
+
- max-age=0, private, must-revalidate
|
43
|
+
Set-Cookie:
|
44
|
+
- request_method=PUT; path=/
|
45
|
+
X-Request-Id:
|
46
|
+
- cd819a7e-e081-43a9-b005-13eccaf601b9
|
47
|
+
X-Runtime:
|
48
|
+
- '0.248465'
|
49
|
+
Transfer-Encoding:
|
50
|
+
- chunked
|
51
|
+
Via:
|
52
|
+
- 1.1 vegur
|
53
|
+
body:
|
54
|
+
encoding: UTF-8
|
55
|
+
string: '{"credits_remaining":4,"id":2,"entity_id":4,"credits":4,"created_at":"2015-01-17T22:28:06.375Z","updated_at":"2015-01-17T22:30:38.490Z"}'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Sat, 17 Jan 2015 22:30:38 GMT
|
58
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://subscriptor.herokuapp.com/api/v1/subscriptions
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"api_key":"5","api_password":"subscriptor_test","credits":0,"entity_id":4}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '75'
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- Cowboy
|
27
|
+
Date:
|
28
|
+
- Sat, 17 Jan 2015 21:32:45 GMT
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
X-Frame-Options:
|
32
|
+
- SAMEORIGIN
|
33
|
+
X-Xss-Protection:
|
34
|
+
- 1; mode=block
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
Content-Type:
|
38
|
+
- application/json; charset=utf-8
|
39
|
+
Etag:
|
40
|
+
- '"33409e3edade6c26ff08594d783f276a"'
|
41
|
+
Cache-Control:
|
42
|
+
- max-age=0, private, must-revalidate
|
43
|
+
Set-Cookie:
|
44
|
+
- request_method=POST; path=/
|
45
|
+
X-Request-Id:
|
46
|
+
- e64285f0-4f57-47e6-b46f-68c8894ae36e
|
47
|
+
X-Runtime:
|
48
|
+
- '0.335263'
|
49
|
+
Transfer-Encoding:
|
50
|
+
- chunked
|
51
|
+
Via:
|
52
|
+
- 1.1 vegur
|
53
|
+
body:
|
54
|
+
encoding: UTF-8
|
55
|
+
string: '{"credits_remaining":0,"id":1,"entity_id":4,"credits":0,"created_at":"2015-01-17T21:32:45.445Z","updated_at":"2015-01-17T21:32:45.445Z"}'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Sat, 17 Jan 2015 21:32:45 GMT
|
58
|
+
recorded_with: VCR 2.9.3
|