lib/eco/api/session.rb in eco-helpers-2.0.18 vs lib/eco/api/session.rb in eco-helpers-2.0.19

- old
+ new

@@ -72,16 +72,19 @@ # @return [Eco::API::Common::People::EntryFactory] associated to `schema`. # If `schema` is `nil` or not provided it uses the currently associated to the `session` def entry_factory(schema: nil) schema = to_schema(schema) || self.schema return @entry_factories[schema&.id] if @entry_factories.key?(schema&.id) + unless @entry_factories.empty? + @entry_factories[schema&.id] = @entry_factories.values.first.newFactory(schema: schema) + return @entry_factories[schema&.id] + end mappings = [] if map_file = config.people.fields_mapper mappings = map_file ? file_manager.load_json(map_file) : [] end - @entry_factories[schema&.id] = Eco::API::Common::People::EntryFactory.new( enviro, schema: schema, person_parser: config.people.parser, attr_map: Eco::Data::Mapper.new(mappings) @@ -125,10 +128,10 @@ # Builds the entry for the given data. # @see Eco::API::Common::People::EntryFactory#new # @return [Eco::API::Common::People::PersonEntry] parsed entry. def new_entry(data, dependencies: {}) - entry_factory.new(data, dependencies: dependencies) + entry_factory(schema: data&.details&.schema_id).new(data, dependencies: dependencies) end # @see Eco::API::Common::People::EntryFactory#entries # @param (see Eco::API::Common::People::EntryFactory#entries) # @return [Eco::API::Common::People::Entries] collection of entries.