|
|
|
@ -52,6 +52,14 @@ module GRPC |
|
|
|
|
Core::Channel.new(host, kw, creds) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def self.update_with_jwt_aud_uri(a_hash, host, method) |
|
|
|
|
last_slash_idx, res = method.rindex('/'), a_hash.clone |
|
|
|
|
return res if last_slash_idx.nil? |
|
|
|
|
service_name = method[0..(last_slash_idx - 1)] |
|
|
|
|
res[:jwt_aud_uri] = "https://#{host}#{service_name}" |
|
|
|
|
res |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
# check_update_metadata is used by #initialize verify that it's a Proc. |
|
|
|
|
def self.check_update_metadata(update_metadata) |
|
|
|
|
return update_metadata if update_metadata.nil? |
|
|
|
@ -147,7 +155,8 @@ module GRPC |
|
|
|
|
def request_response(method, req, marshal, unmarshal, timeout = nil, |
|
|
|
|
return_op: false, **kw) |
|
|
|
|
c = new_active_call(method, marshal, unmarshal, timeout) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw.clone) |
|
|
|
|
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri) |
|
|
|
|
return c.request_response(req, **md) unless return_op |
|
|
|
|
|
|
|
|
|
# return the operation view of the active_call; define #execute as a |
|
|
|
@ -204,7 +213,8 @@ module GRPC |
|
|
|
|
def client_streamer(method, requests, marshal, unmarshal, timeout = nil, |
|
|
|
|
return_op: false, **kw) |
|
|
|
|
c = new_active_call(method, marshal, unmarshal, timeout) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw.clone) |
|
|
|
|
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri) |
|
|
|
|
return c.client_streamer(requests, **md) unless return_op |
|
|
|
|
|
|
|
|
|
# return the operation view of the active_call; define #execute as a |
|
|
|
@ -270,7 +280,8 @@ module GRPC |
|
|
|
|
def server_streamer(method, req, marshal, unmarshal, timeout = nil, |
|
|
|
|
return_op: false, **kw, &blk) |
|
|
|
|
c = new_active_call(method, marshal, unmarshal, timeout) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw.clone) |
|
|
|
|
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri) |
|
|
|
|
return c.server_streamer(req, **md, &blk) unless return_op |
|
|
|
|
|
|
|
|
|
# return the operation view of the active_call; define #execute |
|
|
|
@ -375,7 +386,8 @@ module GRPC |
|
|
|
|
def bidi_streamer(method, requests, marshal, unmarshal, timeout = nil, |
|
|
|
|
return_op: false, **kw, &blk) |
|
|
|
|
c = new_active_call(method, marshal, unmarshal, timeout) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw.clone) |
|
|
|
|
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) |
|
|
|
|
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri) |
|
|
|
|
return c.bidi_streamer(requests, **md, &blk) unless return_op |
|
|
|
|
|
|
|
|
|
# return the operation view of the active_call; define #execute |
|
|
|
|