mirror of
https://github.com/ditkrg/schemable.git
synced 2026-01-23 06:36:40 +00:00
Refactor enum attribute handling in attribute_schema_generator to set default enum value
This commit is contained in:
parent
d00737fc6f
commit
e1a9a0d258
@ -101,9 +101,25 @@ module Schemable
|
|||||||
if @configuration.custom_defined_enum_method && @model.respond_to?(@configuration.custom_defined_enum_method)
|
if @configuration.custom_defined_enum_method && @model.respond_to?(@configuration.custom_defined_enum_method)
|
||||||
defined_enums = @model.send(@configuration.custom_defined_enum_method)
|
defined_enums = @model.send(@configuration.custom_defined_enum_method)
|
||||||
enum_attribute = attribute.to_s.gsub(@configuration.enum_prefix_for_simple_enum || @configuration.enum_suffix_for_simple_enum, '').to_s
|
enum_attribute = attribute.to_s.gsub(@configuration.enum_prefix_for_simple_enum || @configuration.enum_suffix_for_simple_enum, '').to_s
|
||||||
return @schema_modifier.add_properties(@response, { enum: defined_enums[enum_attribute].keys }, '.') if @response && defined_enums[enum_attribute].present?
|
if @response && defined_enums[enum_attribute].present?
|
||||||
elsif @model.respond_to?(:defined_enums)
|
return @schema_modifier.add_properties(
|
||||||
return @schema_modifier.add_properties(@response, { enum: @model.defined_enums[attribute.to_s].keys }, '.') if @response && @model.defined_enums.key?(attribute.to_s)
|
@response,
|
||||||
|
{
|
||||||
|
enum: defined_enums[enum_attribute].keys,
|
||||||
|
default: @model_definition.default_value_for_enum_attributes[attribute.to_sym] || defined_enums[enum_attribute].keys.first
|
||||||
|
},
|
||||||
|
'.'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
elsif @model.respond_to?(:defined_enums) && @response && @model.defined_enums.key?(attribute.to_s)
|
||||||
|
return @schema_modifier.add_properties(
|
||||||
|
@response,
|
||||||
|
{
|
||||||
|
enum: @model.defined_enums[attribute.to_s].keys,
|
||||||
|
default: @model_definition.default_value_for_enum_attributes[attribute.to_sym] || @model.defined_enums[attribute.to_s].keys.first
|
||||||
|
},
|
||||||
|
'.'
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
return @response unless @response.nil?
|
return @response unless @response.nil?
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user