3scale_api 1.0.2 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d0223786cde69d7a70a886afb91b6f3c3919659
4
- data.tar.gz: 052c5d209b2d50fed163f952cfce07d9b958d193
3
+ metadata.gz: 8b5621d5247c1a95bdd119289a847dcaa2c789a0
4
+ data.tar.gz: bcd9a3b112e0906219963d9ff0e4251d1fe291f7
5
5
  SHA512:
6
- metadata.gz: e698537127b7dacd729e4f8e1ea1b59042e6092f0d6dd73e1abf03c9d8d692797ddcc78d1c174b1c3be68e701975b0c5cbd4cf618dc9d6765ec5614f50a9b2d0
7
- data.tar.gz: 15003f3b05077cf23fa2a039db8e11a4b56075763042c63363063043f845bc813f1eaceebbae09305e445cdc562d30689d69efcbdcffaef382e141dea7df4bcb
6
+ metadata.gz: d8df7de521e42f9118cdef182195d29dd75cc4988aec883fb2bcdf789f7877d9ac9ac7615e5c2bc13ee528d42d3983bd1b33050211184eae8c5c25ff2ecdb85b
7
+ data.tar.gz: 79fda93210f3332290888f6d3019ad4b71164b99d12bb742321579f1eeac5b4151c5c9be122633718b05b544872e5b93a88bef46171630e29ff05995ded33b52
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # 3scale - API
2
2
 
3
3
  [![Join the chat at https://gitter.im/IDTLabs/threescale_api](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/IDTLabs/threescale_api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
- [![Gem Version](https://badge.fury.io/rb/threescale_api.svg)](http://badge.fury.io/rb/threescale_api)
4
+ [![Gem Version](https://badge.fury.io/rb/3scale_api.svg)](http://badge.fury.io/rb/3scale_api)
5
5
 
6
6
  This gem will allow developers to interact with 3Scale's APIs.
7
7
 
@@ -86,5 +86,37 @@ module Threescale
86
86
  results
87
87
  end
88
88
 
89
+ def get_service_plans
90
+ results = Array.new
91
+ response = @conn.get "/admin/api/application_plans.xml", {:provider_key => @provider_key }
92
+ xml = Nokogiri::XML(response.body)
93
+ plans = xml.xpath("//plans/plan")
94
+ plans = plans.map do |plan|
95
+ {
96
+ :name => plan.css("name").text,
97
+ :service_plan_id => plan.css("service_id").text
98
+ }
99
+ end
100
+ end
101
+
102
+ def get_services
103
+ results = Array.new
104
+ response = @conn.get "/admin/api/services.xml", {:provider_key => @provider_key }
105
+ xml = Nokogiri::XML(response.body)
106
+ p xml
107
+ services = xml.xpath("//services/service")
108
+ services.map do |service|
109
+ {
110
+ :name => service.css("name").first.text,
111
+ :service_id => service.css("id").first.text
112
+ }
113
+ end
114
+ end
115
+
116
+ def create_account(name, service_id)
117
+ response = @conn.post "/admin/api/services/#{service_id}/application_plans.xml", {:provider_key => @provider_key,
118
+ :name => name}
119
+ response.status == 201
120
+ end
89
121
  end
90
122
  end
@@ -1,3 +1,3 @@
1
1
  module Threescale
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -5,6 +5,7 @@ describe "3scaleApi" do
5
5
  ENV["THREESCALE_URL"] = nil
6
6
  ENV["THREESCALE_PROVIDER_KEY"] = nil
7
7
  end
8
+
8
9
  describe "Instantiate 3scale object" do
9
10
  it "should raise an error when there is no env variables and you instantiate" do
10
11
  lambda do
@@ -31,11 +32,13 @@ describe "3scaleApi" do
31
32
  end.should_not raise_error
32
33
  end
33
34
  end
35
+
34
36
  describe "API methods" do
35
37
  before(:all) do
36
38
  ENV["THREESCALE_URL"] = "http://test-url.test"
37
39
  @threescale = Threescale::API.new 'provider-key'
38
40
  end
41
+
39
42
  describe "get_application_keys" do
40
43
  it "should call /admin/api/accounts/{account_id}/applications/{application_id}/keys.xml" do
41
44
  stub_request(
@@ -50,6 +53,7 @@ describe "3scaleApi" do
50
53
  @threescale.get_application_keys 'account-id', 'application-id'
51
54
  end
52
55
  end
56
+
53
57
  describe "get_application_list" do
54
58
  it "should call /admin/api/accounts/{account_id}/applications.xml" do
55
59
  stub_request(
@@ -99,6 +103,7 @@ describe "3scaleApi" do
99
103
  @threescale.generate_application_key 'account-id', 'application-id'
100
104
  end
101
105
  end
106
+
102
107
  describe "create_application" do
103
108
  it "should call /admin/api/accounts/{account_id}/applications.xml" do
104
109
  stub_request(
@@ -120,5 +125,34 @@ describe "3scaleApi" do
120
125
  @threescale.create_application 'account-id', 'plan-id', 'name', 'description'
121
126
  end
122
127
  end
128
+
129
+ describe "get_service_plans" do
130
+ it "should call /admin/api/application_plans.xml" do
131
+ stub_request(:get, "http://test-url.test/admin/api/application_plans.xml?provider_key=provider-key").
132
+ with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Faraday v0.9.1'}).
133
+ to_return(:status => 200, :body => "", :headers => {})
134
+
135
+ @threescale.get_service_plans
136
+ end
137
+ end
138
+
139
+ describe "get_services" do
140
+ it "should call /admin/api/services.xml" do
141
+ stub_request(:get, "http://test-url.test/admin/api/services.xml?provider_key=provider-key").
142
+ with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Faraday v0.9.1'}).
143
+ to_return(:status => 200, :body => "", :headers => {})
144
+ @threescale.get_services
145
+ end
146
+ end
147
+
148
+ describe "create_account" do
149
+ it "should call /admin/api/accounts/{account_id}/applications.xml" do
150
+ stub_request(:post, "http://test-url.test/admin/api/services/service-id/application_plans.xml").
151
+ with(:body => {"name"=>"name", "provider_key"=>"provider-key"},
152
+ :headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Content-Type'=>'application/x-www-form-urlencoded', 'User-Agent'=>'Faraday v0.9.1'}).
153
+ to_return(:status => 200, :body => "", :headers => {})
154
+ @threescale.create_account "name", "service-id"
155
+ end
156
+ end
123
157
  end
124
- end
158
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 3scale_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robbie Holmes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-03 00:00:00.000000000 Z
11
+ date: 2015-04-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This gem is to be used to interact with 3Scale's API.
14
14
  email: