class Starling::Services::BaseService
A basic implementation of a service for interacting with the Starling
Bank API, mapping HTTP request to endpoints to Ruby methods
Attributes
api_service[R]
Public Class Methods
new(api_service)
click to toggle source
@param api_service
[ApiService]
# File lib/starling/services/base_service.rb, line 9 def initialize(api_service) @api_service = api_service end
Private Instance Methods
build_collection_from_embedded_key(response, key:, resource:)
click to toggle source
# File lib/starling/services/base_service.rb, line 25 def build_collection_from_embedded_key(response, key:, resource:) JSON.parse(response.body) .fetch('_embedded', {}) .fetch(key, []).map do |parsed_data| resource.new(parsed_data: parsed_data) end end
build_collection_from_key(response, key:, resource:)
click to toggle source
# File lib/starling/services/base_service.rb, line 17 def build_collection_from_key(response, key:, resource:) JSON.parse(response.body) .fetch(key) .map do |parsed_data| resource.new(parsed_data: parsed_data) end end
convert_location_header_to_relative_path(location)
click to toggle source
# File lib/starling/services/base_service.rb, line 37 def convert_location_header_to_relative_path(location) location.gsub(%r{^/api/v1}, '') end
options_without_params(options)
click to toggle source
# File lib/starling/services/base_service.rb, line 33 def options_without_params(options) options.reject { |key, _| key == :params } end