ey_services_api 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -0
- data/Guardfile +5 -0
- data/InternalGemfile +1 -0
- data/lib/ey_services_api/connection.rb +4 -0
- data/lib/ey_services_api/test/tresfiestas_fake.rb +31 -1
- data/lib/ey_services_api/version.rb +1 -1
- data/spec/service_account_creation_spec.rb +19 -0
- data/spec/service_spec.rb +2 -5
- metadata +9 -8
data/Gemfile
CHANGED
data/Guardfile
ADDED
data/InternalGemfile
CHANGED
|
@@ -8,6 +8,7 @@ class TresfiestasFake
|
|
|
8
8
|
@services = {}
|
|
9
9
|
@invoices = []
|
|
10
10
|
@status_messages = []
|
|
11
|
+
@service_accounts = {}
|
|
11
12
|
end
|
|
12
13
|
def self.services
|
|
13
14
|
@services ||= {}
|
|
@@ -15,6 +16,9 @@ class TresfiestasFake
|
|
|
15
16
|
def self.invoices
|
|
16
17
|
@invoices ||= []
|
|
17
18
|
end
|
|
19
|
+
def self.service_accounts
|
|
20
|
+
@service_accounts ||= {}
|
|
21
|
+
end
|
|
18
22
|
def self.status_messages
|
|
19
23
|
@status_messages ||= []
|
|
20
24
|
end
|
|
@@ -60,9 +64,20 @@ class TresfiestasFake
|
|
|
60
64
|
def service_account
|
|
61
65
|
{:invoices_url => "#{BASE_URL}/api/1/invoices/12",
|
|
62
66
|
:messages_url => "#{BASE_URL}/api/1/messages/12",
|
|
67
|
+
:url => "#{BASE_URL}/api/1/serviceaccounts/12",
|
|
63
68
|
:id => 12}
|
|
64
69
|
end
|
|
65
70
|
|
|
71
|
+
def pushed_service_account
|
|
72
|
+
pushed = TresfiestasFake.service_accounts[12] || {}
|
|
73
|
+
service_account.merge({
|
|
74
|
+
:provisioned_services_url => pushed['provisioned_services_url'],
|
|
75
|
+
:configuration_url => pushed['configuration_url'],
|
|
76
|
+
:url => pushed['url'],
|
|
77
|
+
:configuration_required => pushed['configuration_required'],
|
|
78
|
+
})
|
|
79
|
+
end
|
|
80
|
+
|
|
66
81
|
#TODO: test this!, put in tresfiestas too!
|
|
67
82
|
def create_service_account
|
|
68
83
|
service = TresfiestasFake.services.values.first
|
|
@@ -115,7 +130,12 @@ class TresfiestasFake
|
|
|
115
130
|
end
|
|
116
131
|
|
|
117
132
|
def service_account_creation_request(service_account_hash)
|
|
118
|
-
{
|
|
133
|
+
{
|
|
134
|
+
:url => service_account_hash[:url],
|
|
135
|
+
:name => service_account_hash[:name],
|
|
136
|
+
:messages_url => service_account_hash[:messages_url],
|
|
137
|
+
:invoices_url => service_account_hash[:invoices_url]
|
|
138
|
+
}
|
|
119
139
|
end
|
|
120
140
|
|
|
121
141
|
def provisioned_service_creation_request(service_account_hash)
|
|
@@ -154,6 +174,10 @@ class TresfiestasFake
|
|
|
154
174
|
disable :dump_errors
|
|
155
175
|
disable :show_exceptions
|
|
156
176
|
|
|
177
|
+
get '/api/1/register_a_new_service' do
|
|
178
|
+
TresfiestasFake.services.values.map{|v| {"service" => v }}.to_json
|
|
179
|
+
end
|
|
180
|
+
|
|
157
181
|
#TODO: auth!
|
|
158
182
|
post '/api/1/register_a_new_service' do
|
|
159
183
|
service_id = TresfiestasFake.services.size + 100
|
|
@@ -195,6 +219,12 @@ class TresfiestasFake
|
|
|
195
219
|
{}.to_json
|
|
196
220
|
end
|
|
197
221
|
|
|
222
|
+
put '/api/1/serviceaccounts/12' do
|
|
223
|
+
TresfiestasFake.service_accounts ||= {}
|
|
224
|
+
TresfiestasFake.service_accounts[12] = JSON.parse(request.body.read)["service_account"]
|
|
225
|
+
{}.to_json
|
|
226
|
+
end
|
|
227
|
+
|
|
198
228
|
post '/api/1/invoices/:service_account_id' do |service_account_id|
|
|
199
229
|
invoice_params = JSON.parse(request.body.read)["invoice"]
|
|
200
230
|
unless invoice_params['total_amount_cents'].is_a?(Fixnum)
|
|
@@ -16,6 +16,25 @@ describe EY::ServicesAPI::ServiceAccountCreation do
|
|
|
16
16
|
@service_account.name.should eq @creation_request[:name]
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
describe "with a pushed service account" do
|
|
20
|
+
before do
|
|
21
|
+
@tresfiestas.pushed_service_account #make sure it's already pushed to the partner
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe "updating a service account" do
|
|
25
|
+
before do
|
|
26
|
+
@connection = EY::ServicesAPI.connection
|
|
27
|
+
@connection.update_service_account(@service_account.url, {:configuration_required => true, :configuration_url => "a different url"})
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should work" do
|
|
31
|
+
pushed_service = @tresfiestas.pushed_service_account
|
|
32
|
+
pushed_service[:configuration_url].should eq "a different url"
|
|
33
|
+
pushed_service[:configuration_required].should eq true
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
19
38
|
it "can produce a response body hash for service account creation requests" do
|
|
20
39
|
response_hash = @service_account.creation_response_hash do |presenter|
|
|
21
40
|
presenter.provisioned_services_url = "some provision url"
|
data/spec/service_spec.rb
CHANGED
|
@@ -22,11 +22,8 @@ describe EY::ServicesAPI::Service do
|
|
|
22
22
|
describe "with a registration_url" do
|
|
23
23
|
before do
|
|
24
24
|
partner = @tresfiestas.partner
|
|
25
|
-
|
|
26
25
|
@registration_url = partner[:registration_url]
|
|
27
|
-
|
|
28
26
|
@registration_params = @tresfiestas.service_registration_params
|
|
29
|
-
|
|
30
27
|
@connection = EY::ServicesAPI.connection
|
|
31
28
|
end
|
|
32
29
|
|
|
@@ -38,7 +35,7 @@ describe EY::ServicesAPI::Service do
|
|
|
38
35
|
|
|
39
36
|
it "can list services" do
|
|
40
37
|
services = @connection.list_services(@registration_url)
|
|
41
|
-
services.should eq
|
|
38
|
+
services.class.should eq Array
|
|
42
39
|
end
|
|
43
40
|
|
|
44
41
|
it "can handle errors on registration" do
|
|
@@ -54,7 +51,7 @@ describe EY::ServicesAPI::Service do
|
|
|
54
51
|
|
|
55
52
|
it "can list services" do
|
|
56
53
|
services = @connection.list_services(@registration_url)
|
|
57
|
-
services.should eq
|
|
54
|
+
services.last.should eq @service
|
|
58
55
|
end
|
|
59
56
|
|
|
60
57
|
it "can fetch your service" do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ey_services_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2011-09-
|
|
12
|
+
date: 2011-09-21 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &2170005320 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *2170005320
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: json
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &2170004660 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *2170004660
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: ey_api_hmac
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &2170003780 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,7 +43,7 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *2170003780
|
|
47
47
|
description: API for Partner Services (talks to services.engineyard.com)
|
|
48
48
|
email:
|
|
49
49
|
- jacob@engineyard.com
|
|
@@ -54,6 +54,7 @@ files:
|
|
|
54
54
|
- .gitignore
|
|
55
55
|
- .rspec
|
|
56
56
|
- Gemfile
|
|
57
|
+
- Guardfile
|
|
57
58
|
- InternalGemfile
|
|
58
59
|
- README.md
|
|
59
60
|
- Rakefile
|