lib/flagsmith/engine/environments/models.rb in flagsmith-4.0.1 vs lib/flagsmith/engine/environments/models.rb in flagsmith-4.1.0

- old
+ new

@@ -4,27 +4,38 @@ module Engine # EnvironmentModel class Environment attr_reader :id, :api_key attr_accessor :project, :feature_states, :amplitude_config, :segment_config, - :mixpanel_config, :heap_config + :mixpanel_config, :heap_config, :identity_overrides - def initialize(id:, api_key:, project:, feature_states: []) + def initialize(id:, api_key:, project:, feature_states: [], identity_overrides: []) @id = id @api_key = api_key @project = project @feature_states = feature_states + @identity_overrides = identity_overrides end class << self + # rubocop:disable Metrics/MethodLength def build(json) project = Flagsmith::Engine::Project.build(json[:project]) feature_states = json[:feature_states].map do |fs| Flagsmith::Engine::FeatureState.build(fs) end - new(**json.slice(:id, :api_key).merge(project: project, feature_states: feature_states)) + identity_overrides = json.fetch(:identity_overrides, []).map do |io| + Flagsmith::Engine::Identity.build(io) + end + + new(**json.slice(:id, :api_key).merge( + project: project, + feature_states: feature_states, + identity_overrides: identity_overrides + )) end + # rubocop:enable Metrics/MethodLength end end module Environments # EnvironmentApiKeyModel