Class: Gitlab::GrapeOpenapi::Converters::TypeResolver
- Inherits:
-
Object
- Object
- Gitlab::GrapeOpenapi::Converters::TypeResolver
- Defined in:
- lib/gitlab/grape_openapi/converters/type_resolver.rb
Constant Summary collapse
- TYPE_MAPPINGS =
{ 'API::Validations::Types::WorkhorseFile' => 'string', 'Array' => 'array', 'BigDecimal' => 'number', 'Boolean' => 'boolean', 'date' => 'string', 'Date' => 'string', 'date-time' => 'string', 'dateTime' => 'string', 'DateTime' => 'string', 'FalseClass' => 'boolean', 'Grape::API::Boolean' => 'boolean', 'Gitlab::Color' => 'string', :int => 'integer', 'int' => 'integer', Integer => 'integer', 'Integer' => 'integer', 'File' => 'string', Float => 'number', 'Float' => 'number', :hash => 'object', 'hash' => 'object', 'Hash' => 'object', 'JSON' => 'object', 'Numeric' => 'number', String => 'string', 'String' => 'string', 'symbol' => 'string', 'Symbol' => 'string', 'text' => 'string', 'Time' => 'string', 'TrueClass' => 'boolean' }.freeze
- FORMAT_MAPPINGS =
{ 'API::Validations::Types::WorkhorseFile' => 'binary', 'date' => 'date', 'Date' => 'date', 'date-time' => 'date-time', 'dateTime' => 'date-time', 'DateTime' => 'date-time', 'File' => 'binary', 'Time' => 'date-time' }.freeze
Class Method Summary collapse
- .resolve_format(format, type) ⇒ Object
- .resolve_type(type) ⇒ Object
- .resolve_union_member(type) ⇒ Object
Class Method Details
.resolve_format(format, type) ⇒ Object
60 61 62 |
# File 'lib/gitlab/grape_openapi/converters/type_resolver.rb', line 60 def self.resolve_format(format, type) format || FORMAT_MAPPINGS[type] end |
.resolve_type(type) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/gitlab/grape_openapi/converters/type_resolver.rb', line 52 def self.resolve_type(type) return TYPE_MAPPINGS[type] if TYPE_MAPPINGS[type] return type unless type.is_a?(String) return 'object' if type.delete_prefix('::').start_with?('API::') type end |
.resolve_union_member(type) ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/gitlab/grape_openapi/converters/type_resolver.rb', line 64 def self.resolve_union_member(type) if type.start_with?('[') && type.end_with?(']') item_type = type[1..-2] { type: 'array', items: { type: resolve_type(item_type) || 'string' } } else { type: resolve_type(type) || 'string' } end end |