Class: SimpleFormsApiSubmission::Service

Inherits:
Common::Client::Base show all
Includes:
Common::Client::Concerns::Monitoring, SentryLogging
Defined in:
lib/simple_forms_api_submission/service.rb

Overview

Proxy Service for the Lighthouse Benefits Intake API Service

Instance Method Summary collapse

Methods included from Common::Client::Concerns::Monitoring

#with_monitoring

Methods included from SentryLogging

#log_exception_to_sentry, #log_message_to_sentry, #non_nil_hash?, #normalize_level, #rails_logger

Methods inherited from Common::Client::Base

configuration, #raise_backend_exception

Instance Method Details

#generate_tmp_metadata(metadata) ⇒ Object



26
27
28
# File 'lib/simple_forms_api_submission/service.rb', line 26

def ()
  Common::FileHelpers.generate_temp_file(.to_s, "#{SecureRandom.hex}.SimpleFormsApi.metadata.json")
end

#get_upload_docs(file:, metadata:) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/simple_forms_api_submission/service.rb', line 30

def get_upload_docs(file:, metadata:)
  json_tmpfile = ()
  file_name = File.basename(file)
  params = { metadata: Faraday::UploadIO.new(json_tmpfile, Mime[:json].to_s, 'metadata.json'),
             content: Faraday::UploadIO.new(file, Mime[:pdf].to_s, file_name) }
  [params, json_tmpfile]
end

#get_upload_locationObject



20
21
22
23
24
# File 'lib/simple_forms_api_submission/service.rb', line 20

def get_upload_location
  headers = {}
  request_body = {}
  perform :post, 'uploads', request_body, headers
end

#upload_doc(upload_url:, file:, metadata:) ⇒ Object



38
39
40
41
42
43
44
45
# File 'lib/simple_forms_api_submission/service.rb', line 38

def upload_doc(upload_url:, file:, metadata:)
  params, _json_tmpfile = get_upload_docs(file:, metadata:)
  response = perform :put, upload_url, params, { 'Content-Type' => 'multipart/form-data' }

  raise response.body unless response.success?

  response
end