From 878d7aed23ca014e6216d295df207f9df2ecd483 Mon Sep 17 00:00:00 2001 From: Jason DeLeon Date: Thu, 9 Apr 2020 14:59:35 -0500 Subject: [PATCH 1/2] Leverage the OAuth2 refresh token, if available --- lib/fhir_client/client.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/fhir_client/client.rb b/lib/fhir_client/client.rb index c6a0a8cd..5d46c54f 100644 --- a/lib/fhir_client/client.rb +++ b/lib/fhir_client/client.rb @@ -428,7 +428,7 @@ def get(path, headers = {}) FHIR.logger.info "GETTING: #{url}" headers = clean_headers(headers) unless headers.empty? if @use_oauth2_auth - # @client.refresh! + refresh_oauth2_session begin response = @client.get(url, headers: headers) rescue => e @@ -510,7 +510,7 @@ def post(path, resource, headers) headers = clean_headers(headers) payload = request_payload(resource, headers) if resource if @use_oauth2_auth - # @client.refresh! + refresh_oauth2_session begin response = @client.post(url, headers: headers, body: payload) rescue => e @@ -557,7 +557,7 @@ def put(path, resource, headers) headers = clean_headers(headers) payload = request_payload(resource, headers) if resource if @use_oauth2_auth - # @client.refresh! + refresh_oauth2_session begin response = @client.put(url, headers: headers, body: payload) rescue => e @@ -604,7 +604,7 @@ def patch(path, patchset, headers) headers = clean_headers(headers) payload = request_patch_payload(patchset, headers['Content-Type']) if @use_oauth2_auth - # @client.refresh! + refresh_oauth2_session begin response = @client.patch(url, headers: headers, body: payload) rescue => e @@ -672,7 +672,7 @@ def delete(path, headers) FHIR.logger.info "DELETING: #{url}" headers = clean_headers(headers) if @use_oauth2_auth - # @client.refresh! + refresh_oauth2_session begin response = @client.delete(url, headers: headers) rescue => e @@ -736,5 +736,12 @@ def build_url(path) "#{base_path(path)}#{path}" end end + + private + + def refresh_oauth2_session + return unless @use_oauth2_auth + @client = @client.refresh! if (@client.expired? && @client.refresh_token) + end end end From 67cb5de8a5c2c083001296a17350a3b8e1d57c71 Mon Sep 17 00:00:00 2001 From: Jason DeLeon Date: Thu, 9 Apr 2020 17:37:12 -0500 Subject: [PATCH 2/2] Remove a redundant `private` access modifier --- lib/fhir_client/client.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/fhir_client/client.rb b/lib/fhir_client/client.rb index 5d46c54f..a36ffb47 100644 --- a/lib/fhir_client/client.rb +++ b/lib/fhir_client/client.rb @@ -737,8 +737,6 @@ def build_url(path) end end - private - def refresh_oauth2_session return unless @use_oauth2_auth @client = @client.refresh! if (@client.expired? && @client.refresh_token)