Class: FmRest::V1::TypeCoercer
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- FmRest::V1::TypeCoercer
- Defined in:
- lib/fmrest/v1/type_coercer.rb
Constant Summary collapse
- JULIAN_ZERO_DAY =
We use this date to represent a FileMaker time for consistency with ginjo-rfm
"-4712/1/1"
- COERCE_HYBRID =
[:hybrid, "hybrid", true].freeze
- COERCE_FULL =
[:full, "full"].freeze
Instance Method Summary collapse
-
#initialize(app, settings) ⇒ TypeCoercer
constructor
A new instance of TypeCoercer.
- #on_complete(env) ⇒ Object
Constructor Details
#initialize(app, settings) ⇒ TypeCoercer
Returns a new instance of TypeCoercer.
17 18 19 20 |
# File 'lib/fmrest/v1/type_coercer.rb', line 17 def initialize(app, settings) super(app) @settings = settings end |
Instance Method Details
#on_complete(env) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fmrest/v1/type_coercer.rb', line 22 def on_complete(env) return unless enabled? return unless env.body.is_a?(Hash) data = env.body.dig("response", "data") || env.body.dig(:response, :data) return unless data data.each do |record| field_data = record["fieldData"] || record[:fieldData] portal_data = record["portalData"] || record[:portalData] coerce_fields(field_data) portal_data.try(:each_value) do |portal_records| portal_records.each do |pr| coerce_fields(pr) end end end end |