ruby-kong 0.1.0a

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,70 @@
1
+ require 'ruby-kong/request/plugin'
2
+
3
+ module RubyKong
4
+ module Plugin
5
+ class << self
6
+ # Params: api:,
7
+ # plugin: {name:, consumer_id: nil, config.{property}}
8
+ #
9
+ # Usage: RubyKong::Plugin.create api: 'shipit',
10
+ # plugin: {name: 'key-auth'}
11
+ def create(*args)
12
+ RubyKong::Request::Plugin.create args[0]
13
+ end
14
+
15
+ # Params: id, name, api_id, consumer_id, size, offset
16
+ #
17
+ # Usage: RubyKong::Plugin.list
18
+ def list(*args)
19
+ RubyKong::Request::Plugin.list args[0]
20
+ end
21
+
22
+ # Params: api: id,
23
+ # filter: {name, api_id, consumer_id, size, offset}
24
+ #
25
+ # Usage: RubyKong::Plugin.list_by_api api: 'shipit',
26
+ # filter: {name: 'key-auth'}
27
+ def list_by_api(*args)
28
+ RubyKong::Request::Plugin.list_by_api args[0]
29
+ end
30
+
31
+ # Params: id
32
+ #
33
+ # Usage: RubyKong::Plugin.retrieve id: '90e6e8f4-2d51-444d-ac28-3f1dc1b3b3ed'
34
+ def retrieve(*args)
35
+ RubyKong::Request::Plugin.retrieve args[0]
36
+ end
37
+
38
+ #
39
+ # Usage: RubyKong::Plugin.retrieve_enabled
40
+ def retrieve_enabled(*args)
41
+ RubyKong::Request::Plugin.retrieve_enabled args[0]
42
+ end
43
+
44
+ # Params: plugin_name
45
+ #
46
+ # Usage: RubyKong::Plugin.retrieve_schema plugin_name: 'basic_auth'
47
+ def retrieve_schema(*args)
48
+ RubyKong::Request::Plugin.retrieve_schema args[0]
49
+ end
50
+
51
+ # Params: api:, plugin:,
52
+ # params: {name:, consumer_id:, config.{property}}
53
+ #
54
+ # Usage: RubyKong::Plugin.update api: 'shipit',
55
+ # plugin: '90e6e8f4-2d51-444d-ac28-3f1dc1b3b3ed'
56
+ # params: {name: 'basic-auth'}
57
+ def update(*args)
58
+ RubyKong::Request::Plugin.update args[0]
59
+ end
60
+
61
+ # Params: id, name
62
+ #
63
+ # Usage: RubyKong::Plugin.update name: 'shipit',
64
+ # upstream_url: 'https://api.shipit.vn/v2/'
65
+ def delete(*args)
66
+ RubyKong::Request::Plugin.delete args[0]
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,31 @@
1
+ require 'unirest'
2
+ module RubyKong
3
+ module Request
4
+ class << self
5
+ def get(path, params = nil, headers = {})
6
+ endpoint = RubyKong::Utils.endpoint_builder(path)
7
+ Unirest.get(endpoint, :headers => headers, :parameters => params)
8
+ end
9
+
10
+ def post(path, params = nil, headers = {})
11
+ endpoint = RubyKong::Utils.endpoint_builder(path)
12
+ Unirest.post(endpoint, :headers => headers, :parameters => params)
13
+ end
14
+
15
+ def put(path, params = nil, headers = {})
16
+ endpoint = RubyKong::Utils.endpoint_builder(path)
17
+ Unirest.put(endpoint, :headers => headers, :parameters => params)
18
+ end
19
+
20
+ def patch(path, params = nil, headers = {})
21
+ endpoint = RubyKong::Utils.endpoint_builder(path)
22
+ Unirest.patch(endpoint, :headers => headers, :parameters => params)
23
+ end
24
+
25
+ def delete(path, params = nil, headers = {})
26
+ endpoint = RubyKong::Utils.endpoint_builder(path)
27
+ Unirest.delete(endpoint, :headers => headers, :parameters => params)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,150 @@
1
+ module RubyKong
2
+ module Request
3
+ module Api
4
+ class << self
5
+ def create(*args)
6
+ path = RubyKong.paths[:api][:create]
7
+ Request.post(path, args[0])
8
+ end
9
+
10
+ def list(*args)
11
+ path = RubyKong.paths[:api][:list]
12
+ Request.get(path, args[0])
13
+ end
14
+
15
+ def retrieve(*args)
16
+ resource = args[0][:name] || args[0][:id]
17
+ path = RubyKong.paths[:api][:retrieve] + resource
18
+ Request.get(path)
19
+ end
20
+
21
+ def update(*args)
22
+ resource = args[0][:name] || args[0][:id]
23
+ path = RubyKong.paths[:api][:update] + resource
24
+ Request.patch(path, args[0])
25
+ end
26
+
27
+ def delete(*args)
28
+ resource = args[0][:name] || args[0][:id]
29
+ path = RubyKong.paths[:api][:update] + resource
30
+ Request.delete(path, args[0])
31
+ end
32
+ end
33
+
34
+ class Stub
35
+ def self.delete
36
+ # Mock with /apis/shipit path
37
+ path = RubyKong.paths[:api][:delete] + 'shipit'
38
+ url = RubyKong::Utils.endpoint_builder(path)
39
+
40
+ RubyKong::Stub.request(
41
+ :method => :delete,
42
+ :url => url,
43
+ :response => {
44
+ :status => 204,
45
+ :body => ""
46
+ }
47
+ )
48
+ end
49
+
50
+ def self.update
51
+ # Mock with /apis/shipit path
52
+ path = RubyKong.paths[:api][:update] + 'shipit'
53
+ url = RubyKong::Utils.endpoint_builder(path)
54
+
55
+ RubyKong::Stub.request(
56
+ :method => :patch,
57
+ :url => url,
58
+ :request => {
59
+ :body => {
60
+ :upstream_url => 'https://api.shipit.vn/v2/',
61
+ :name => 'shipit'
62
+ }
63
+ },
64
+ :response => {
65
+ :status => 200,
66
+ :body => {
67
+ 'upstream_url' => 'https://api.shipit.vn/v2/',
68
+ 'id' => '0faeb3a7-3839-4739-916a-6b139c5b491b',
69
+ 'name' => 'shipit',
70
+ 'created_at' => 1458706997000,
71
+ 'request_host' => 'api.shipit.vn'
72
+ }.to_s
73
+ }
74
+ )
75
+ end
76
+
77
+ def self.retrieve
78
+ # Mock with /apis/shipit path
79
+ path = RubyKong.paths[:api][:retrieve] + 'shipit'
80
+ url = RubyKong::Utils.endpoint_builder(path)
81
+
82
+ RubyKong::Stub.request(
83
+ :method => :get,
84
+ :url => url,
85
+ :response => {
86
+ :status => 200,
87
+ :body => {
88
+ "upstream_url" => "https://api.shipit.vn/v1/",
89
+ "id" => "0faeb3a7-3839-4739-916a-6b139c5b491b",
90
+ "name" => "shipit",
91
+ "created_at" => 1458706997000,
92
+ "request_host" => "api.shipit.vn"
93
+ }.to_s
94
+ }
95
+ )
96
+ end
97
+
98
+ def self.list
99
+ url = RubyKong::Utils.endpoint_builder(RubyKong.paths[:api][:list])
100
+
101
+ RubyKong::Stub.request(
102
+ :method => :get,
103
+ :url => url,
104
+ :response => {
105
+ :status => 200,
106
+ :body => {
107
+ "data" =>
108
+ [
109
+ {
110
+ "upstream_url" => "https://api.shipit.vn/v1/",
111
+ "id" => "0faeb3a7-3839-4739-916a-6b139c5b491b",
112
+ "name" => "shipit",
113
+ "created_at" => 1458706997000,
114
+ "request_host" => "api.shipit.vn"
115
+ }
116
+ ],
117
+ "total" => 1
118
+ }.to_s
119
+ }
120
+ )
121
+ end
122
+
123
+ def self.create
124
+ url = RubyKong::Utils.endpoint_builder(RubyKong.paths[:api][:create])
125
+ RubyKong::Stub.request(
126
+ :method => :post,
127
+ :url => url,
128
+ :request => {
129
+ :body => {
130
+ :upstream_url => 'https://api.shipit.vn/v1/',
131
+ :request_host => 'api.shipit.vn',
132
+ :name => 'shipit'
133
+ }
134
+ },
135
+ :response => {
136
+ :status => 201,
137
+ :body => {
138
+ 'upstream_url' => 'https://api.shipit.vn/v1/',
139
+ 'id' => '0faeb3a7-3839-4739-916a-6b139c5b491b',
140
+ 'name' => 'shipit',
141
+ 'created_at' => 1458706997000,
142
+ 'request_host' => 'api.shipit.vn'
143
+ }.to_s
144
+ }
145
+ )
146
+ end # End of Stub.create method
147
+ end # End of Stub module
148
+ end # end of Api
149
+ end # End of Request
150
+ end # End of RubyKong
@@ -0,0 +1,142 @@
1
+ module RubyKong
2
+ module Request
3
+ module Consumer
4
+ class << self
5
+ def create(*args)
6
+ path = RubyKong.paths[:consumer][:create]
7
+ Request.post(path, args[0])
8
+ end
9
+
10
+ def list(*args)
11
+ path = RubyKong.paths[:consumer][:list]
12
+ Request.get(path, args[0])
13
+ end
14
+
15
+ def retrieve(*args)
16
+ resource = args[0][:username] || args[0][:id]
17
+ path = RubyKong.paths[:consumer][:retrieve] + resource
18
+ Request.get(path)
19
+ end
20
+
21
+ def update(*args)
22
+ resource = args[0][:username] || args[0][:id]
23
+ path = RubyKong.paths[:consumer][:update] + resource
24
+ Request.patch(path, args[0])
25
+ end
26
+
27
+ def delete(*args)
28
+ resource = args[0][:username] || args[0][:id]
29
+ path = RubyKong.paths[:consumer][:update] + resource
30
+ Request.delete(path, args[0])
31
+ end
32
+ end
33
+
34
+ class Stub
35
+ def self.delete
36
+ # Mock with /consumers/lamdt path
37
+ path = RubyKong.paths[:consumer][:delete] + 'lamdt'
38
+ url = RubyKong::Utils.endpoint_builder(path)
39
+
40
+ RubyKong::Stub.request(
41
+ :method => :delete,
42
+ :url => url,
43
+ :response => {
44
+ :status => 204,
45
+ :body => ""
46
+ }
47
+ )
48
+ end
49
+
50
+ def self.update
51
+ # Mock with /consumers/lamdt path
52
+ path = RubyKong.paths[:consumer][:update] + 'lamdt'
53
+ url = RubyKong::Utils.endpoint_builder(path)
54
+
55
+ RubyKong::Stub.request(
56
+ :method => :patch,
57
+ :url => url,
58
+ :request => {
59
+ :body => {
60
+ :custom_id => '1234',
61
+ :username => 'lamdt'
62
+ }
63
+ },
64
+ :response => {
65
+ :status => 200,
66
+ :body => {
67
+ 'custom_id' => 1234,
68
+ 'username' => 'lamdt',
69
+ 'created_at' => 1458789832000,
70
+ 'id' => 'b880f403-b161-4294-9a13-2462d39991b2'
71
+ }.to_s
72
+ }
73
+ )
74
+ end
75
+
76
+ def self.retrieve
77
+ # Mock with /consumers/lamdt path
78
+ path = RubyKong.paths[:consumer][:retrieve] + 'lamdt'
79
+ url = RubyKong::Utils.endpoint_builder(path)
80
+
81
+ RubyKong::Stub.request(
82
+ :method => :get,
83
+ :url => url,
84
+ :response => {
85
+ :status => 200,
86
+ :body => {
87
+ 'username' => 'lamdt',
88
+ 'created_at' => 1458789832000,
89
+ 'id' => 'b880f403-b161-4294-9a13-2462d39991b2'
90
+ }.to_s
91
+ }
92
+ )
93
+ end
94
+
95
+ def self.list
96
+ url = RubyKong::Utils.endpoint_builder(RubyKong.paths[:consumer][:list])
97
+
98
+ RubyKong::Stub.request(
99
+ :method => :get,
100
+ :url => url,
101
+ :response => {
102
+ :status => 200,
103
+ :body => {
104
+ "data" =>
105
+ [
106
+ {
107
+ 'username' => 'lamdt',
108
+ 'created_at' => 1458789832000,
109
+ 'id' => 'b880f403-b161-4294-9a13-2462d39991b2'
110
+ }
111
+ ],
112
+ "total" => 1
113
+ }.to_s
114
+ }
115
+ )
116
+ end
117
+
118
+ def self.create
119
+ url = RubyKong::Utils.endpoint_builder(RubyKong.paths[:consumer][:create])
120
+
121
+ RubyKong::Stub.request(
122
+ :method => :post,
123
+ :url => url,
124
+ :request => {
125
+ :body => {
126
+ :username => 'lamdt'
127
+ }
128
+ },
129
+ :response => {
130
+ :status => 201,
131
+ :body => {
132
+ 'username' => 'lamdt',
133
+ 'created_at' => 1458789832000,
134
+ 'id' => 'b880f403-b161-4294-9a13-2462d39991b2'
135
+ }.to_s
136
+ }
137
+ )
138
+ end # End of Stub.create method
139
+ end # End of Stub module
140
+ end # end of Consumer
141
+ end # End of Request
142
+ end # End of RubyKong
@@ -0,0 +1,70 @@
1
+ module RubyKong
2
+ module Request
3
+ module Node
4
+ class << self
5
+ def get_node_info
6
+ path = RubyKong.paths[:node][:info]
7
+
8
+ Request.get path
9
+ end
10
+
11
+ def get_node_status
12
+ path = RubyKong.paths[:node][:status]
13
+
14
+ Request.get path
15
+ end
16
+ end
17
+
18
+ class Stub
19
+ def self.get_node_info
20
+ url = RubyKong::Utils.endpoint_builder(RubyKong.paths[:node][:info])
21
+
22
+ RubyKong::Stub.request(
23
+ :method => :get,
24
+ :url => url,
25
+ :response => {
26
+ :body => {
27
+ 'version' => '0.7.0',
28
+ 'lua_version' => 'LuaJIT 2.1.0-beta1',
29
+ 'tagline' => 'Welcome to Kong',
30
+ 'hostname' => '8b173da56e6'
31
+ }.to_s
32
+ }
33
+ )
34
+ end
35
+
36
+ def self.get_node_status
37
+ url = RubyKong::Utils.endpoint_builder(RubyKong.paths[:node][:status])
38
+
39
+ RubyKong::Stub.request(
40
+ :method => :get,
41
+ :url => url,
42
+ :response => {
43
+ :body => {
44
+ "server" => {
45
+ "connections_handled" => 2757,
46
+ "connections_reading" => 0,
47
+ "connections_active" => 1,
48
+ "connections_waiting" => 0,
49
+ "connections_writing" => 1,
50
+ "total_requests" => 2757,
51
+ "connections_accepted" => 2757
52
+ },
53
+ "database" => {
54
+ "response_ratelimiting_metrics" => 0,
55
+ "keyauth_credentials" => 0,
56
+ "apis" => 0,
57
+ "consumers" => 0,
58
+ "plugins" => 0,
59
+ "nodes" => 1,
60
+ "basicauth_credentials" => 0,
61
+ "ratelimiting_metrics" => 0
62
+ }
63
+ }.to_s
64
+ }
65
+ )
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end