bin/google-api in google-api-client-0.2.0 vs bin/google-api in google-api-client-0.3.0
- old
+ new
@@ -106,12 +106,12 @@
"--api <name>", String,
"Perform discovery on API") do |s|
options[:api] = s
end
opts.on(
- "--service-version <id>", String,
- "Select service version") do |id|
+ "--api-version <id>", String,
+ "Select api version") do |id|
options[:version] = id
end
opts.on(
"--content-type <format>", String,
"Content-Type for request") do |f|
@@ -163,11 +163,11 @@
opts.separator(
"\nAvailable commands:\n" +
" oauth-1-login Log a user into an API with OAuth 1.0a\n" +
" oauth-2-login Log a user into an API with OAuth 2.0 d10\n" +
- " list List the methods available for a service\n" +
+ " list List the methods available for an API\n" +
" execute Execute a method on the API\n" +
" irb Start an interactive client session"
)
end
end
@@ -236,21 +236,31 @@
else
# Dunno?
end
if options[:discovery_uri]
- client.discovery_uri = options[:discovery_uri]
+ if options[:api] && options[:version]
+ client.register_discovery_uri(
+ options[:api], options[:version], options[:discovery_uri]
+ )
+ else
+ STDERR.puts(
+ 'Cannot register a discovery URI without ' +
+ 'specifying an API and version.'
+ )
+ exit(1)
+ end
end
return client
end
- def api_version(api, version)
+ def api_version(api_name, version)
v = version
if !version
- if client.preferred_version(api)
- v = client.preferred_version(api).version
+ if client.preferred_version(api_name)
+ v = client.preferred_version(api_name).version
else
v = 'v1'
end
end
return v
@@ -282,17 +292,16 @@
config_file = File.expand_path('~/.google-api.yaml')
open(config_file, 'w') { |file| file.write(YAML.dump(config)) }
exit(0)
else
$verifier = nil
- # TODO(bobaman): Cross-platform?
- logger = WEBrick::Log.new('/dev/null')
server = WEBrick::HTTPServer.new(
:Port => OAUTH_SERVER_PORT,
- :Logger => logger,
- :AccessLog => logger
+ :Logger => WEBrick::Log.new,
+ :AccessLog => WEBrick::Log.new
)
+ server.logger.level = 0
trap("INT") { server.shutdown }
server.mount("/", OAuthVerifierServlet)
oauth_client = Signet::OAuth1::Client.new(
@@ -377,11 +386,11 @@
:redirect_uri => "http://localhost:#{OAUTH_SERVER_PORT}/",
:scope => options[:scope]
)
# Launch browser
- Launchy::Browser.run(oauth_client.authorization_uri.to_s)
+ Launchy.open(oauth_client.authorization_uri.to_s)
server.start
oauth_client.code = $verifier
oauth_client.fetch_access_token!
config = {
@@ -397,22 +406,32 @@
exit(0)
end
end
def list
- api = options[:api]
- unless api
+ api_name = options[:api]
+ unless api_name
STDERR.puts('No API name supplied.')
exit(1)
end
client = Google::APIClient.new(:authorization => nil)
if options[:discovery_uri]
- client.discovery_uri = options[:discovery_uri]
+ if options[:api] && options[:version]
+ client.register_discovery_uri(
+ options[:api], options[:version], options[:discovery_uri]
+ )
+ else
+ STDERR.puts(
+ 'Cannot register a discovery URI without ' +
+ 'specifying an API and version.'
+ )
+ exit(1)
+ end
end
- version = api_version(api, options[:version])
- service = client.discovered_api(api, version)
- rpcnames = service.to_h.keys
+ version = api_version(api_name, options[:version])
+ api = client.discovered_api(api_name, version)
+ rpcnames = api.to_h.keys
puts rpcnames.sort.join("\n")
exit(0)
end
def execute
@@ -445,28 +464,28 @@
method = options[:http_method]
method ||= request_body == '' ? 'GET' : 'POST'
method.upcase!
request = [method, uri.to_str, headers, [request_body]]
request = client.generate_authenticated_request(:request => request)
- response = client.transmit_request(request)
+ response = client.transmit(request)
status, headers, body = response
puts body
exit(0)
else
# Make request with URI generated from template and parameters
if !self.rpcname
STDERR.puts('No rpcname supplied.')
exit(1)
end
- api = options[:api] || self.rpcname[/^([^\.]+)\./, 1]
- version = api_version(api, options[:version])
- service = client.discovered_api(api, version)
- method = service.to_h[self.rpcname]
+ api_name = options[:api] || self.rpcname[/^([^\.]+)\./, 1]
+ version = api_version(api_name, options[:version])
+ api = client.discovered_api(api_name, version)
+ method = api.to_h[self.rpcname]
if !method
STDERR.puts(
"Method #{self.rpcname} does not exist for " +
- "#{api}-#{version}."
+ "#{api_name}-#{version}."
)
exit(1)
end
parameters = self.argv.inject({}) do |accu, pair|
name, value = pair.split('=', 2)
@@ -475,13 +494,16 @@
end
if options[:requestor_id]
parameters['xoauth_requestor_id'] = options[:requestor_id]
end
begin
- response = client.execute(
- method, parameters, request_body, headers
+ result = client.execute(
+ :api_method => method,
+ :parameters => parameters,
+ :merged_body => request_body,
+ :headers => headers
)
- status, headers, body = response
+ status, headers, body = result.response
puts body
exit(0)
rescue ArgumentError => e
puts e.message
exit(1)