turbot-api 0.0.1 → 0.0.2
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 +8 -8
- data/lib/turbot_api/api.rb +59 -62
- data/lib/turbot_api/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
M2RmZWNmYTlkNTJlNzc1YTk3NzUzMGZlNDVmMzVlMzM0M2I3NWUyNw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzQyOTg0ZDQzZjY1OTNiMDBkYjI2ZWNiMDUyMDhlNGNmMzkyZmRkZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OWVjYjE2Y2ViYmVkNmUwYWJhMzQ1YzE1MWJjMjYwMzM0MzMxMTBhMmIxMmE0
|
10
|
+
ODhmMjIyNjNkYmQxZTg1MGFiYzQ2ZWU4N2IzNWQyOTNjOWRiYmNjOWMwMmRj
|
11
|
+
ODBlM2NjMTQ4ZTE1M2ZlNmQ1ZjdiYzY3ZTk0YmRjZTE4N2ExZGI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NmM1NWVhNDJjNTllNTVhZWQ4NDIxZjg2NDFjNzVjMWIxNGI4M2E1YzEzODVm
|
14
|
+
ZWY2NDVjNjhhYjNjNTcxN2UzNDU2NDNjZjVhODI5Y2JlM2JlYTE1MDJlZGRl
|
15
|
+
NGM0OTU2YTU4YTJjZmQzNTMyZTVhYjA3NzNlMzYzODhiMDNhM2E=
|
data/lib/turbot_api/api.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'action_dispatch'
|
2
|
+
require 'debugger'
|
1
3
|
require 'json'
|
2
4
|
require 'rest_client'
|
3
5
|
|
@@ -12,10 +14,29 @@ module Turbot
|
|
12
14
|
@scheme = params[:scheme]
|
13
15
|
@ssl_verify_peer = params[:ssl_verify_peer]
|
14
16
|
@api_key = params[:api_key] || get_api_key_for_credentials(@username, @password)["api_key"]
|
17
|
+
|
18
|
+
@routes = ActionDispatch::Routing::RouteSet.new
|
19
|
+
|
20
|
+
@routes.draw do
|
21
|
+
namespace :api do
|
22
|
+
resources :bots, :only => [:index, :create] do
|
23
|
+
resource :code, :only => [:update], :controller => 'code'
|
24
|
+
resource :draft_data, :only => [:update]
|
25
|
+
end
|
26
|
+
|
27
|
+
resource :user, :only => [:show] do
|
28
|
+
resource :api_key, :only => [:show]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
@routes.default_url_options[:host] = @host
|
34
|
+
@routes.default_url_options[:port] = @port
|
15
35
|
end
|
16
36
|
|
17
37
|
def get_user
|
18
|
-
|
38
|
+
# TODO move away from using RestClient directly
|
39
|
+
response = RestClient.get(server_req("/api/user"))
|
19
40
|
JSON.parse(response)
|
20
41
|
end
|
21
42
|
|
@@ -24,85 +45,39 @@ module Turbot
|
|
24
45
|
end
|
25
46
|
|
26
47
|
def get_api_key_for_credentials(user, password)
|
27
|
-
|
48
|
+
# TODO move away from using RestClient directly
|
49
|
+
url = server_req("/api/user/api_key",
|
28
50
|
:email => user,
|
29
51
|
:password => password)
|
30
52
|
response = RestClient.get(url)
|
31
53
|
JSON.parse(response)
|
32
54
|
end
|
33
55
|
|
34
|
-
def
|
35
|
-
|
36
|
-
["jkjk"]
|
37
|
-
end
|
38
|
-
|
39
|
-
def get_ssh_keys
|
40
|
-
# return an array of ssh keys
|
41
|
-
["jkjk"]
|
42
|
-
end
|
43
|
-
|
44
|
-
def post_key(key)
|
45
|
-
# receive ssh key and associate with account
|
56
|
+
def list_bots
|
57
|
+
request(:get, :bots)
|
46
58
|
end
|
47
59
|
|
48
|
-
def
|
60
|
+
def show_bot(bot_id)
|
61
|
+
request(:get, :bot, :bot_id => bot_id)
|
49
62
|
end
|
50
63
|
|
51
|
-
def
|
64
|
+
def create_bot(bot_id, config)
|
65
|
+
request(:post, :bots, :bot => {:bot_id => bot_id, :config => config})
|
52
66
|
end
|
53
67
|
|
54
|
-
def
|
55
|
-
|
56
|
-
JSON.parse(RestClient.get(url))
|
68
|
+
def update_draft_data(bot_id, config, batch)
|
69
|
+
request(:put, :bot_draft_data, :bot_id => bot_id, :config => config, :batch => batch)
|
57
70
|
end
|
58
71
|
|
59
|
-
def
|
60
|
-
|
61
|
-
begin
|
62
|
-
RestClient.post(url, data)
|
63
|
-
rescue => e
|
64
|
-
if e.response.match(/Gitlab::Error::NotFound/)
|
65
|
-
puts "That bot already exists!"
|
66
|
-
exit 0
|
67
|
-
elsif e.response.match(/MissingManifest/)
|
68
|
-
puts "ERROR: You didn't provide a manifest.json"
|
69
|
-
exit 1
|
70
|
-
else
|
71
|
-
raise
|
72
|
-
end
|
73
|
-
end
|
74
|
-
puts "Created bot #{data['bot_id']}"
|
75
|
-
end
|
76
|
-
|
77
|
-
def delete_bot(bot)
|
78
|
-
RestClient.delete(server_req("/users/delete_bot", {:bot => bot}))
|
72
|
+
def update_code(bot_id, archive)
|
73
|
+
request(:put, :bot_code, :bot_id => bot_id, :archive => archive)
|
79
74
|
end
|
80
75
|
|
81
|
-
def
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
def get_bot(bot)
|
86
|
-
JSON.parse(RestClient.get(server_req("/users/get_bot", :bot => bot)).body)
|
87
|
-
end
|
88
|
-
|
89
|
-
def put_config_vars(bot, vars)
|
90
|
-
JSON.parse(RestClient.post(server_req("/users/config_vars", :bot => bot, :vars => vars)).body)
|
91
|
-
end
|
92
|
-
|
93
|
-
def get_config_vars(bot)
|
94
|
-
JSON.parse(RestClient.get(server_req("/users/config_vars", :bot => bot)).body)
|
95
|
-
end
|
96
|
-
|
97
|
-
def delete_config_var(bot, key)
|
98
|
-
JSON.parse(RestClient.delete(server_req("/users/config_vars", :bot => bot, :key => key)).body)
|
76
|
+
def get_ssh_keys
|
77
|
+
[]
|
99
78
|
end
|
100
79
|
|
101
|
-
def
|
102
|
-
RestClient.post(
|
103
|
-
server_req("/users/send_drafts_to_angler"),
|
104
|
-
{:bot => bot,
|
105
|
-
:batch => batch}).body
|
80
|
+
def post_key(key)
|
106
81
|
end
|
107
82
|
|
108
83
|
private
|
@@ -120,5 +95,27 @@ module Turbot
|
|
120
95
|
args[:query] = query_string unless query_string.empty?
|
121
96
|
URI::HTTP.build(args).to_s
|
122
97
|
end
|
98
|
+
|
99
|
+
def request(method, named_route, params={})
|
100
|
+
begin
|
101
|
+
url = @routes.url_helpers.send("api_#{named_route}_url")
|
102
|
+
rescue ActionController::UrlGenerationError
|
103
|
+
url = @routes.url_helpers.send("api_#{named_route}_url", :bot_id => params[:bot_id])
|
104
|
+
end
|
105
|
+
|
106
|
+
if method == :get
|
107
|
+
response = RestClient.send(method, url, :params => params.merge(:api_key => @api_key))
|
108
|
+
else
|
109
|
+
response = RestClient.send(method, url, params.merge(:api_key => @api_key))
|
110
|
+
end
|
111
|
+
|
112
|
+
# TODO work out what to do here - wrap response in APIResponse?
|
113
|
+
debugger
|
114
|
+
if response.body.blank?
|
115
|
+
{}
|
116
|
+
else
|
117
|
+
JSON.parse(response.body)
|
118
|
+
end
|
119
|
+
end
|
123
120
|
end
|
124
121
|
end
|
data/lib/turbot_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbot-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Turbot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: actionpack
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.0.3
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.0.3
|
41
55
|
description: Client library to deploy apps on Turbot.
|
42
56
|
email: support@opencorporates.com
|
43
57
|
executables: []
|
@@ -74,3 +88,4 @@ signing_key:
|
|
74
88
|
specification_version: 4
|
75
89
|
summary: Client library to deploy apps on Turbot.
|
76
90
|
test_files: []
|
91
|
+
has_rdoc:
|