class Apipie::Generator::Swagger::MethodDescription::ApiSchemaService
Public Class Methods
new(method_description, language: nil)
click to toggle source
@param [Apipie::Generator::Swagger::MethodDescription::Decorator] method_description
# File lib/apipie/generator/swagger/method_description/api_schema_service.rb, line 3 def initialize(method_description, language: nil) @method_description = method_description @language = language end
Public Instance Methods
call()
click to toggle source
@return [Hash]
# File lib/apipie/generator/swagger/method_description/api_schema_service.rb, line 9 def call @method_description.apis.each_with_object({}) do |api, paths| api = Apipie::Generator::Swagger::MethodDescription::ApiDecorator.new(api) path = Apipie::Generator::Swagger::PathDecorator.new(api.path) op_id = Apipie::Generator::Swagger::OperationId.from(api).to_s if Apipie.configuration.generator.swagger.generate_x_computed_id_field? Apipie::Generator::Swagger::ComputedInterfaceId.instance.add!(op_id) end parameters = Apipie::Generator::Swagger::MethodDescription::ParametersService .new(@method_description, path: path, http_method: api.normalized_http_method) .call paths[path.swagger_path(@method_description)] ||= {} paths[path.swagger_path(@method_description)][api.normalized_http_method] = { tags: tags, consumes: consumes, operationId: op_id, summary: api.summary(method_description: @method_description, language: @language), parameters: parameters, responses: responses(api), description: Apipie.app.translate(@method_description.full_description, @language) }.compact end end
Private Instance Methods
consumes()
click to toggle source
# File lib/apipie/generator/swagger/method_description/api_schema_service.rb, line 64 def consumes if params_in_body? ['application/json'] else ['application/x-www-form-urlencoded', 'multipart/form-data'] end end
params_in_body?()
click to toggle source
# File lib/apipie/generator/swagger/method_description/api_schema_service.rb, line 72 def params_in_body? Apipie.configuration.generator.swagger.content_type_input == :json end
responses(api)
click to toggle source
@param [Apipie::Generator::Swagger::MethodDescription::ApiDecorator] api
# File lib/apipie/generator/swagger/method_description/api_schema_service.rb, line 77 def responses(api) Apipie::Generator::Swagger::MethodDescription::ResponseService .new( @method_description, language: @language, http_method: api.normalized_http_method ) .call end
summary(api)
click to toggle source
# File lib/apipie/generator/swagger/method_description/api_schema_service.rb, line 38 def summary(api) translated_description = Apipie.app.translate(api.short_description, @language) return translated_description if translated_description.present? Apipie::Generator::Swagger::Warning.for_code( Apipie::Generator::Swagger::Warning::MISSING_METHOD_SUMMARY_CODE, @method_description.ruby_name ).warn_through_writer end