forked from loafle/openapi-generator-original
fix invalid spec, update petstore samples (jaxrs, ruby)
This commit is contained in:
parent
a8afaa8f77
commit
157fcbc4aa
@ -2385,7 +2385,7 @@ public class DefaultCodegen {
|
||||
|
||||
// validation
|
||||
// handle maximum, minimum properly for int/long by removing the trailing ".0"
|
||||
if ("integer".equals(type)) {
|
||||
if ("integer".equals(qp.getType())) {
|
||||
p.maximum = qp.getMaximum() == null ? null : String.valueOf(qp.getMaximum().longValue());
|
||||
p.minimum = qp.getMinimum() == null ? null : String.valueOf(qp.getMinimum().longValue());
|
||||
} else {
|
||||
|
@ -367,7 +367,6 @@ paths:
|
||||
description: ID of the order that needs to be deleted
|
||||
required: true
|
||||
type: string
|
||||
minimum: 1
|
||||
responses:
|
||||
'400':
|
||||
description: Invalid ID supplied
|
||||
|
@ -367,7 +367,6 @@ paths:
|
||||
description: ID of the order that needs to be deleted
|
||||
required: true
|
||||
type: string
|
||||
minimum: 1
|
||||
responses:
|
||||
'400':
|
||||
description: Invalid ID supplied
|
||||
|
@ -109,6 +109,7 @@ Class | Method | HTTP request | Description
|
||||
- [Petstore::ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
|
||||
- [Petstore::ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
|
||||
- [Petstore::ArrayTest](docs/ArrayTest.md)
|
||||
- [Petstore::Capitalization](docs/Capitalization.md)
|
||||
- [Petstore::Cat](docs/Cat.md)
|
||||
- [Petstore::Category](docs/Category.md)
|
||||
- [Petstore::ClassModel](docs/ClassModel.md)
|
||||
|
13
samples/client/petstore/ruby/docs/Capitalization.md
Normal file
13
samples/client/petstore/ruby/docs/Capitalization.md
Normal file
@ -0,0 +1,13 @@
|
||||
# Petstore::Capitalization
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**small_camel** | **String** | | [optional]
|
||||
**capital_camel** | **String** | | [optional]
|
||||
**small_snake** | **String** | | [optional]
|
||||
**capital_snake** | **String** | | [optional]
|
||||
**sca_eth_flow_points** | **String** | | [optional]
|
||||
**att_name** | **String** | Name of the pet | [optional]
|
||||
|
||||
|
@ -23,6 +23,7 @@ require 'petstore/models/api_response'
|
||||
require 'petstore/models/array_of_array_of_number_only'
|
||||
require 'petstore/models/array_of_number_only'
|
||||
require 'petstore/models/array_test'
|
||||
require 'petstore/models/capitalization'
|
||||
require 'petstore/models/cat'
|
||||
require 'petstore/models/category'
|
||||
require 'petstore/models/class_model'
|
||||
|
@ -145,20 +145,20 @@ module Petstore
|
||||
|
||||
# verify the required parameter 'byte' is set
|
||||
fail ArgumentError, "Missing the required parameter 'byte' when calling FakeApi.test_endpoint_parameters" if byte.nil?
|
||||
if !opts[:'integer'].nil? && opts[:'integer'] > 100
|
||||
fail ArgumentError, 'invalid value for "opts[:"integer"]" when calling FakeApi.test_endpoint_parameters, must be smaller than or equal to 100.'
|
||||
if !opts[:'integer'].nil? && opts[:'integer'] > 100.0
|
||||
fail ArgumentError, 'invalid value for "opts[:"integer"]" when calling FakeApi.test_endpoint_parameters, must be smaller than or equal to 100.0.'
|
||||
end
|
||||
|
||||
if !opts[:'integer'].nil? && opts[:'integer'] < 10
|
||||
fail ArgumentError, 'invalid value for "opts[:"integer"]" when calling FakeApi.test_endpoint_parameters, must be greater than or equal to 10.'
|
||||
if !opts[:'integer'].nil? && opts[:'integer'] < 10.0
|
||||
fail ArgumentError, 'invalid value for "opts[:"integer"]" when calling FakeApi.test_endpoint_parameters, must be greater than or equal to 10.0.'
|
||||
end
|
||||
|
||||
if !opts[:'int32'].nil? && opts[:'int32'] > 200
|
||||
fail ArgumentError, 'invalid value for "opts[:"int32"]" when calling FakeApi.test_endpoint_parameters, must be smaller than or equal to 200.'
|
||||
if !opts[:'int32'].nil? && opts[:'int32'] > 200.0
|
||||
fail ArgumentError, 'invalid value for "opts[:"int32"]" when calling FakeApi.test_endpoint_parameters, must be smaller than or equal to 200.0.'
|
||||
end
|
||||
|
||||
if !opts[:'int32'].nil? && opts[:'int32'] < 20
|
||||
fail ArgumentError, 'invalid value for "opts[:"int32"]" when calling FakeApi.test_endpoint_parameters, must be greater than or equal to 20.'
|
||||
if !opts[:'int32'].nil? && opts[:'int32'] < 20.0
|
||||
fail ArgumentError, 'invalid value for "opts[:"int32"]" when calling FakeApi.test_endpoint_parameters, must be greater than or equal to 20.0.'
|
||||
end
|
||||
|
||||
if !opts[:'float'].nil? && opts[:'float'] > 987.6
|
||||
|
@ -40,10 +40,6 @@ module Petstore
|
||||
end
|
||||
# verify the required parameter 'order_id' is set
|
||||
fail ArgumentError, "Missing the required parameter 'order_id' when calling StoreApi.delete_order" if order_id.nil?
|
||||
if order_id < 1.0
|
||||
fail ArgumentError, 'invalid value for "order_id" when calling StoreApi.delete_order, must be greater than or equal to 1.0.'
|
||||
end
|
||||
|
||||
# resource path
|
||||
local_var_path = "/store/order/{orderId}".sub('{format}','json').sub('{' + 'orderId' + '}', order_id.to_s)
|
||||
|
||||
@ -141,12 +137,12 @@ module Petstore
|
||||
end
|
||||
# verify the required parameter 'order_id' is set
|
||||
fail ArgumentError, "Missing the required parameter 'order_id' when calling StoreApi.get_order_by_id" if order_id.nil?
|
||||
if order_id > 5
|
||||
fail ArgumentError, 'invalid value for "order_id" when calling StoreApi.get_order_by_id, must be smaller than or equal to 5.'
|
||||
if order_id > 5.0
|
||||
fail ArgumentError, 'invalid value for "order_id" when calling StoreApi.get_order_by_id, must be smaller than or equal to 5.0.'
|
||||
end
|
||||
|
||||
if order_id < 1
|
||||
fail ArgumentError, 'invalid value for "order_id" when calling StoreApi.get_order_by_id, must be greater than or equal to 1.'
|
||||
if order_id < 1.0
|
||||
fail ArgumentError, 'invalid value for "order_id" when calling StoreApi.get_order_by_id, must be greater than or equal to 1.0.'
|
||||
end
|
||||
|
||||
# resource path
|
||||
|
@ -0,0 +1,233 @@
|
||||
=begin
|
||||
#Swagger Petstore
|
||||
|
||||
#This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
|
||||
OpenAPI spec version: 1.0.0
|
||||
Contact: apiteam@swagger.io
|
||||
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
|
||||
=end
|
||||
|
||||
require 'date'
|
||||
|
||||
module Petstore
|
||||
|
||||
class Capitalization
|
||||
attr_accessor :small_camel
|
||||
|
||||
attr_accessor :capital_camel
|
||||
|
||||
attr_accessor :small_snake
|
||||
|
||||
attr_accessor :capital_snake
|
||||
|
||||
attr_accessor :sca_eth_flow_points
|
||||
|
||||
# Name of the pet
|
||||
attr_accessor :att_name
|
||||
|
||||
|
||||
# Attribute mapping from ruby-style variable name to JSON key.
|
||||
def self.attribute_map
|
||||
{
|
||||
:'small_camel' => :'smallCamel',
|
||||
:'capital_camel' => :'CapitalCamel',
|
||||
:'small_snake' => :'small_Snake',
|
||||
:'capital_snake' => :'Capital_Snake',
|
||||
:'sca_eth_flow_points' => :'SCA_ETH_Flow_Points',
|
||||
:'att_name' => :'ATT_NAME'
|
||||
}
|
||||
end
|
||||
|
||||
# Attribute type mapping.
|
||||
def self.swagger_types
|
||||
{
|
||||
:'small_camel' => :'String',
|
||||
:'capital_camel' => :'String',
|
||||
:'small_snake' => :'String',
|
||||
:'capital_snake' => :'String',
|
||||
:'sca_eth_flow_points' => :'String',
|
||||
:'att_name' => :'String'
|
||||
}
|
||||
end
|
||||
|
||||
# Initializes the object
|
||||
# @param [Hash] attributes Model attributes in the form of hash
|
||||
def initialize(attributes = {})
|
||||
return unless attributes.is_a?(Hash)
|
||||
|
||||
# convert string to symbol for hash key
|
||||
attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
|
||||
|
||||
if attributes.has_key?(:'smallCamel')
|
||||
self.small_camel = attributes[:'smallCamel']
|
||||
end
|
||||
|
||||
if attributes.has_key?(:'CapitalCamel')
|
||||
self.capital_camel = attributes[:'CapitalCamel']
|
||||
end
|
||||
|
||||
if attributes.has_key?(:'small_Snake')
|
||||
self.small_snake = attributes[:'small_Snake']
|
||||
end
|
||||
|
||||
if attributes.has_key?(:'Capital_Snake')
|
||||
self.capital_snake = attributes[:'Capital_Snake']
|
||||
end
|
||||
|
||||
if attributes.has_key?(:'SCA_ETH_Flow_Points')
|
||||
self.sca_eth_flow_points = attributes[:'SCA_ETH_Flow_Points']
|
||||
end
|
||||
|
||||
if attributes.has_key?(:'ATT_NAME')
|
||||
self.att_name = attributes[:'ATT_NAME']
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# Show invalid properties with the reasons. Usually used together with valid?
|
||||
# @return Array for valid properies with the reasons
|
||||
def list_invalid_properties
|
||||
invalid_properties = Array.new
|
||||
return invalid_properties
|
||||
end
|
||||
|
||||
# Check to see if the all the properties in the model are valid
|
||||
# @return true if the model is valid
|
||||
def valid?
|
||||
return true
|
||||
end
|
||||
|
||||
# Checks equality by comparing each attribute.
|
||||
# @param [Object] Object to be compared
|
||||
def ==(o)
|
||||
return true if self.equal?(o)
|
||||
self.class == o.class &&
|
||||
small_camel == o.small_camel &&
|
||||
capital_camel == o.capital_camel &&
|
||||
small_snake == o.small_snake &&
|
||||
capital_snake == o.capital_snake &&
|
||||
sca_eth_flow_points == o.sca_eth_flow_points &&
|
||||
att_name == o.att_name
|
||||
end
|
||||
|
||||
# @see the `==` method
|
||||
# @param [Object] Object to be compared
|
||||
def eql?(o)
|
||||
self == o
|
||||
end
|
||||
|
||||
# Calculates hash code according to all attributes.
|
||||
# @return [Fixnum] Hash code
|
||||
def hash
|
||||
[small_camel, capital_camel, small_snake, capital_snake, sca_eth_flow_points, att_name].hash
|
||||
end
|
||||
|
||||
# Builds the object from hash
|
||||
# @param [Hash] attributes Model attributes in the form of hash
|
||||
# @return [Object] Returns the model itself
|
||||
def build_from_hash(attributes)
|
||||
return nil unless attributes.is_a?(Hash)
|
||||
self.class.swagger_types.each_pair do |key, type|
|
||||
if type =~ /\AArray<(.*)>/i
|
||||
# check to ensure the input is an array given that the the attribute
|
||||
# is documented as an array but the input is not
|
||||
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
||||
self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
|
||||
end
|
||||
elsif !attributes[self.class.attribute_map[key]].nil?
|
||||
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
||||
end # or else data not found in attributes(hash), not an issue as the data can be optional
|
||||
end
|
||||
|
||||
self
|
||||
end
|
||||
|
||||
# Deserializes the data based on type
|
||||
# @param string type Data type
|
||||
# @param string value Value to be deserialized
|
||||
# @return [Object] Deserialized data
|
||||
def _deserialize(type, value)
|
||||
case type.to_sym
|
||||
when :DateTime
|
||||
DateTime.parse(value)
|
||||
when :Date
|
||||
Date.parse(value)
|
||||
when :String
|
||||
value.to_s
|
||||
when :Integer
|
||||
value.to_i
|
||||
when :Float
|
||||
value.to_f
|
||||
when :BOOLEAN
|
||||
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
when :Object
|
||||
# generic object (usually a Hash), return directly
|
||||
value
|
||||
when /\AArray<(?<inner_type>.+)>\z/
|
||||
inner_type = Regexp.last_match[:inner_type]
|
||||
value.map { |v| _deserialize(inner_type, v) }
|
||||
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
||||
k_type = Regexp.last_match[:k_type]
|
||||
v_type = Regexp.last_match[:v_type]
|
||||
{}.tap do |hash|
|
||||
value.each do |k, v|
|
||||
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
||||
end
|
||||
end
|
||||
else # model
|
||||
temp_model = Petstore.const_get(type).new
|
||||
temp_model.build_from_hash(value)
|
||||
end
|
||||
end
|
||||
|
||||
# Returns the string representation of the object
|
||||
# @return [String] String presentation of the object
|
||||
def to_s
|
||||
to_hash.to_s
|
||||
end
|
||||
|
||||
# to_body is an alias to to_hash (backward compatibility)
|
||||
# @return [Hash] Returns the object in the form of hash
|
||||
def to_body
|
||||
to_hash
|
||||
end
|
||||
|
||||
# Returns the object in the form of hash
|
||||
# @return [Hash] Returns the object in the form of hash
|
||||
def to_hash
|
||||
hash = {}
|
||||
self.class.attribute_map.each_pair do |attr, param|
|
||||
value = self.send(attr)
|
||||
next if value.nil?
|
||||
hash[param] = _to_hash(value)
|
||||
end
|
||||
hash
|
||||
end
|
||||
|
||||
# Outputs non-array value in the form of hash
|
||||
# For object, use to_hash. Otherwise, just return the value
|
||||
# @param [Object] value Any valid value
|
||||
# @return [Hash] Returns the value in the form of hash
|
||||
def _to_hash(value)
|
||||
if value.is_a?(Array)
|
||||
value.compact.map{ |v| _to_hash(v) }
|
||||
elsif value.is_a?(Hash)
|
||||
{}.tap do |hash|
|
||||
value.each { |k, v| hash[k] = _to_hash(v) }
|
||||
end
|
||||
elsif value.respond_to? :to_hash
|
||||
value.to_hash
|
||||
else
|
||||
value
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
@ -0,0 +1,71 @@
|
||||
=begin
|
||||
#Swagger Petstore
|
||||
|
||||
#This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
|
||||
OpenAPI spec version: 1.0.0
|
||||
Contact: apiteam@swagger.io
|
||||
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||
|
||||
=end
|
||||
|
||||
require 'spec_helper'
|
||||
require 'json'
|
||||
require 'date'
|
||||
|
||||
# Unit tests for Petstore::Capitalization
|
||||
# Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
|
||||
# Please update as you see appropriate
|
||||
describe 'Capitalization' do
|
||||
before do
|
||||
# run before each test
|
||||
@instance = Petstore::Capitalization.new
|
||||
end
|
||||
|
||||
after do
|
||||
# run after each test
|
||||
end
|
||||
|
||||
describe 'test an instance of Capitalization' do
|
||||
it 'should create an instact of Capitalization' do
|
||||
expect(@instance).to be_instance_of(Petstore::Capitalization)
|
||||
end
|
||||
end
|
||||
describe 'test attribute "small_camel"' do
|
||||
it 'should work' do
|
||||
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
||||
end
|
||||
end
|
||||
|
||||
describe 'test attribute "capital_camel"' do
|
||||
it 'should work' do
|
||||
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
||||
end
|
||||
end
|
||||
|
||||
describe 'test attribute "small_snake"' do
|
||||
it 'should work' do
|
||||
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
||||
end
|
||||
end
|
||||
|
||||
describe 'test attribute "capital_snake"' do
|
||||
it 'should work' do
|
||||
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
||||
end
|
||||
end
|
||||
|
||||
describe 'test attribute "sca_eth_flow_points"' do
|
||||
it 'should work' do
|
||||
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
||||
end
|
||||
end
|
||||
|
||||
describe 'test attribute "att_name"' do
|
||||
it 'should work' do
|
||||
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -21,7 +21,7 @@ import javax.ws.rs.core.SecurityContext;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
public abstract class StoreApiService {
|
||||
public abstract Response deleteOrder( @Min(1.0)String orderId,SecurityContext securityContext)
|
||||
public abstract Response deleteOrder(String orderId,SecurityContext securityContext)
|
||||
throws NotFoundException;
|
||||
public abstract Response getInventory(SecurityContext securityContext)
|
||||
throws NotFoundException;
|
||||
|
@ -22,7 +22,7 @@ import javax.validation.constraints.*;
|
||||
|
||||
public class StoreApiServiceImpl extends StoreApiService {
|
||||
@Override
|
||||
public Response deleteOrder( @Min(1.0)String orderId, SecurityContext securityContext)
|
||||
public Response deleteOrder(String orderId, SecurityContext securityContext)
|
||||
throws NotFoundException {
|
||||
// do some magic!
|
||||
return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
|
||||
|
@ -18,7 +18,7 @@ import javax.ws.rs.core.SecurityContext;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
public abstract class StoreApiService {
|
||||
public abstract Response deleteOrder( @Min(1.0)String orderId,SecurityContext securityContext) throws NotFoundException;
|
||||
public abstract Response deleteOrder(String orderId,SecurityContext securityContext) throws NotFoundException;
|
||||
public abstract Response getInventory(SecurityContext securityContext) throws NotFoundException;
|
||||
public abstract Response getOrderById( @Min(1) @Max(5)Long orderId,SecurityContext securityContext) throws NotFoundException;
|
||||
public abstract Response placeOrder(Order body,SecurityContext securityContext) throws NotFoundException;
|
||||
|
@ -19,7 +19,7 @@ import javax.validation.constraints.*;
|
||||
|
||||
public class StoreApiServiceImpl extends StoreApiService {
|
||||
@Override
|
||||
public Response deleteOrder( @Min(1.0)String orderId, SecurityContext securityContext) throws NotFoundException {
|
||||
public Response deleteOrder(String orderId, SecurityContext securityContext) throws NotFoundException {
|
||||
// do some magic!
|
||||
return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user