Skip to content

Commit 66896eb

Browse files
committed
Add in optional identity overrides to environment model
1 parent 207d4ba commit 66896eb

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

lib/flagsmith/engine/environments/models.rb

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,35 @@ module Engine
66
class Environment
77
attr_reader :id, :api_key
88
attr_accessor :project, :feature_states, :amplitude_config, :segment_config,
9-
:mixpanel_config, :heap_config
9+
:mixpanel_config, :heap_config, :identity_overrides
1010

11-
def initialize(id:, api_key:, project:, feature_states: [])
11+
def initialize(id:, api_key:, project:, feature_states: [], identity_overrides: [])
1212
@id = id
1313
@api_key = api_key
1414
@project = project
1515
@feature_states = feature_states
16+
@identity_overrides = identity_overrides
1617
end
1718

1819
class << self
20+
# rubocop:disable Metrics/MethodLength
1921
def build(json)
2022
project = Flagsmith::Engine::Project.build(json[:project])
2123
feature_states = json[:feature_states].map do |fs|
2224
Flagsmith::Engine::FeatureState.build(fs)
2325
end
2426

25-
new(**json.slice(:id, :api_key).merge(project: project, feature_states: feature_states))
27+
identity_overrides = json.fetch(:identity_overrides, []).map do |io|
28+
Flagsmith::Engine::Identity.build(io)
29+
end
30+
31+
new(**json.slice(:id, :api_key).merge(
32+
project: project,
33+
feature_states: feature_states,
34+
identity_overrides: identity_overrides
35+
))
2636
end
37+
# rubocop:enable Metrics/MethodLength
2738
end
2839
end
2940

0 commit comments

Comments
 (0)