Class: Statsig::APIConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/api_config.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, type:, is_active:, salt:, default_value:, enabled:, rules:, id_type:, entity:, explicit_parameters: nil, has_shared_params: nil, target_app_ids: nil) ⇒ APIConfig

Returns a new instance of APIConfig.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/api_config.rb', line 11

def initialize(name:, type:, is_active:, salt:, default_value:, enabled:, rules:, id_type:, entity:,
               explicit_parameters: nil, has_shared_params: nil, target_app_ids: nil)
  @name = name
  @type = type.to_sym unless entity.nil?
  @is_active = is_active
  @salt = salt
  @default_value = JSON.parse(JSON.generate(default_value))
  @enabled = enabled
  @rules = rules
  @id_type = id_type
  @entity = entity.to_sym unless entity.nil?
  @explicit_parameters = explicit_parameters
  @has_shared_params = has_shared_params
  @target_app_ids = target_app_ids
end

Instance Attribute Details

#default_valueObject

Returns the value of attribute default_value.



8
9
10
# File 'lib/api_config.rb', line 8

def default_value
  @default_value
end

#enabledObject

Returns the value of attribute enabled.



8
9
10
# File 'lib/api_config.rb', line 8

def enabled
  @enabled
end

#entityObject

Returns the value of attribute entity.



8
9
10
# File 'lib/api_config.rb', line 8

def entity
  @entity
end

#explicit_parametersObject

Returns the value of attribute explicit_parameters.



8
9
10
# File 'lib/api_config.rb', line 8

def explicit_parameters
  @explicit_parameters
end

#has_shared_paramsObject

Returns the value of attribute has_shared_params.



8
9
10
# File 'lib/api_config.rb', line 8

def has_shared_params
  @has_shared_params
end

#id_typeObject

Returns the value of attribute id_type.



8
9
10
# File 'lib/api_config.rb', line 8

def id_type
  @id_type
end

#is_activeObject

Returns the value of attribute is_active.



8
9
10
# File 'lib/api_config.rb', line 8

def is_active
  @is_active
end

#nameObject

Returns the value of attribute name.



8
9
10
# File 'lib/api_config.rb', line 8

def name
  @name
end

#rulesObject

Returns the value of attribute rules.



8
9
10
# File 'lib/api_config.rb', line 8

def rules
  @rules
end

#saltObject

Returns the value of attribute salt.



8
9
10
# File 'lib/api_config.rb', line 8

def salt
  @salt
end

#target_app_idsObject

Returns the value of attribute target_app_ids.



8
9
10
# File 'lib/api_config.rb', line 8

def target_app_ids
  @target_app_ids
end

#typeObject

Returns the value of attribute type.



8
9
10
# File 'lib/api_config.rb', line 8

def type
  @type
end

Class Method Details

.from_json(json) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/api_config.rb', line 27

def self.from_json(json)
  new(
    name: json[:name],
    type: json[:type],
    is_active: json[:isActive],
    salt: json[:salt],
    default_value: json[:defaultValue] || {},
    enabled: json[:enabled],
    rules: json[:rules]&.map do |rule|
      APIRule.from_json(rule)
    end,
    id_type: json[:idType],
    entity: json[:entity],
    explicit_parameters: json[:explicitParameters],
    has_shared_params: json[:hasSharedParams],
    target_app_ids: json[:targetAppIDs]
  )
end