petstore-test-sdk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +90 -0
  4. data/lib/swagger_petstore_open_api30/api_helper.rb +10 -0
  5. data/lib/swagger_petstore_open_api30/client.rb +72 -0
  6. data/lib/swagger_petstore_open_api30/configuration.rb +125 -0
  7. data/lib/swagger_petstore_open_api30/controllers/base_controller.rb +66 -0
  8. data/lib/swagger_petstore_open_api30/controllers/pet_controller.rb +226 -0
  9. data/lib/swagger_petstore_open_api30/controllers/store_controller.rb +107 -0
  10. data/lib/swagger_petstore_open_api30/controllers/user_controller.rb +189 -0
  11. data/lib/swagger_petstore_open_api30/exceptions/api_exception.rb +10 -0
  12. data/lib/swagger_petstore_open_api30/http/auth/custom_header_authentication.rb +42 -0
  13. data/lib/swagger_petstore_open_api30/http/http_call_back.rb +10 -0
  14. data/lib/swagger_petstore_open_api30/http/http_method_enum.rb +10 -0
  15. data/lib/swagger_petstore_open_api30/http/http_request.rb +10 -0
  16. data/lib/swagger_petstore_open_api30/http/http_response.rb +10 -0
  17. data/lib/swagger_petstore_open_api30/models/address.rb +77 -0
  18. data/lib/swagger_petstore_open_api30/models/base_model.rb +62 -0
  19. data/lib/swagger_petstore_open_api30/models/category.rb +59 -0
  20. data/lib/swagger_petstore_open_api30/models/customer.rb +77 -0
  21. data/lib/swagger_petstore_open_api30/models/order.rb +105 -0
  22. data/lib/swagger_petstore_open_api30/models/order_status_enum.rb +26 -0
  23. data/lib/swagger_petstore_open_api30/models/pet.rb +103 -0
  24. data/lib/swagger_petstore_open_api30/models/pet_image.rb +68 -0
  25. data/lib/swagger_petstore_open_api30/models/pet_status_enum.rb +26 -0
  26. data/lib/swagger_petstore_open_api30/models/status_enum.rb +26 -0
  27. data/lib/swagger_petstore_open_api30/models/tag.rb +59 -0
  28. data/lib/swagger_petstore_open_api30/models/user.rb +115 -0
  29. data/lib/swagger_petstore_open_api30/utilities/date_time_helper.rb +11 -0
  30. data/lib/swagger_petstore_open_api30/utilities/file_wrapper.rb +16 -0
  31. data/lib/swagger_petstore_open_api30.rb +53 -0
  32. data/test/controllers/controller_test_base.rb +29 -0
  33. data/test/controllers/test_pet_controller.rb +76 -0
  34. data/test/controllers/test_store_controller.rb +58 -0
  35. data/test/controllers/test_user_controller.rb +55 -0
  36. data/test/http_response_catcher.rb +19 -0
  37. metadata +154 -0
@@ -0,0 +1,107 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # StoreController
8
+ class StoreController < BaseController
9
+ # Returns a map of status codes to quantities
10
+ # @return [Hash[String, Integer]] response from the API call
11
+ def get_inventory
12
+ new_api_call_builder
13
+ .request(new_request_builder(HttpMethodEnum::GET,
14
+ '/store/inventory',
15
+ Server::DEFAULT)
16
+ .auth(Single.new('api_key')))
17
+ .response(new_response_handler
18
+ .deserializer(APIHelper.method(:deserialize_primitive_types))
19
+ .deserialize_into(proc do |response| response.to_i end)
20
+ .is_primitive_response(true))
21
+ .execute
22
+ end
23
+
24
+ # Place a new order in the store
25
+ # @param [Integer] id Optional parameter: Example:
26
+ # @param [Integer] pet_id Optional parameter: Example:
27
+ # @param [Integer] quantity Optional parameter: Example:
28
+ # @param [DateTime] ship_date Optional parameter: Example:
29
+ # @param [OrderStatusEnum] order_status Optional parameter: Order Status
30
+ # @param [TrueClass | FalseClass] complete Optional parameter: Example:
31
+ # @return [Order] response from the API call
32
+ def place_order(id: nil,
33
+ pet_id: nil,
34
+ quantity: nil,
35
+ ship_date: nil,
36
+ order_status: OrderStatusEnum::APPROVED,
37
+ complete: nil)
38
+ new_api_call_builder
39
+ .request(new_request_builder(HttpMethodEnum::POST,
40
+ '/store/order',
41
+ Server::DEFAULT)
42
+ .form_param(new_parameter(id, key: 'id'))
43
+ .form_param(new_parameter(pet_id, key: 'petId'))
44
+ .form_param(new_parameter(quantity, key: 'quantity'))
45
+ .form_param(new_parameter(ship_date, key: 'shipDate'))
46
+ .form_param(new_parameter(order_status, key: 'orderStatus'))
47
+ .form_param(new_parameter(complete, key: 'complete'))
48
+ .header_param(new_parameter('application/x-www-form-urlencoded', key: 'content-type'))
49
+ .header_param(new_parameter('application/json', key: 'accept')))
50
+ .response(new_response_handler
51
+ .deserializer(APIHelper.method(:custom_type_deserializer))
52
+ .deserialize_into(Order.method(:from_hash))
53
+ .local_error('405',
54
+ 'Invalid input',
55
+ APIException))
56
+ .execute
57
+ end
58
+
59
+ # For valid response try integer IDs with value <= 5 or > 10. Other values
60
+ # will generate exceptions.
61
+ # @param [Integer] order_id Required parameter: ID of order that needs to be
62
+ # fetched
63
+ # @return [Order] response from the API call
64
+ def get_order_by_id(order_id)
65
+ new_api_call_builder
66
+ .request(new_request_builder(HttpMethodEnum::GET,
67
+ '/store/order/{orderId}',
68
+ Server::DEFAULT)
69
+ .template_param(new_parameter(order_id, key: 'orderId')
70
+ .should_encode(true))
71
+ .header_param(new_parameter('application/json', key: 'accept')))
72
+ .response(new_response_handler
73
+ .deserializer(APIHelper.method(:custom_type_deserializer))
74
+ .deserialize_into(Order.method(:from_hash))
75
+ .local_error('400',
76
+ 'Invalid ID supplied',
77
+ APIException)
78
+ .local_error('404',
79
+ 'Order not found',
80
+ APIException))
81
+ .execute
82
+ end
83
+
84
+ # For valid response try integer IDs with value < 1000. Anything above 1000
85
+ # or nonintegers will generate API errors
86
+ # @param [Integer] order_id Required parameter: ID of the order that needs
87
+ # to be deleted
88
+ # @return [void] response from the API call
89
+ def delete_order(order_id)
90
+ new_api_call_builder
91
+ .request(new_request_builder(HttpMethodEnum::DELETE,
92
+ '/store/order/{orderId}',
93
+ Server::DEFAULT)
94
+ .template_param(new_parameter(order_id, key: 'orderId')
95
+ .should_encode(true)))
96
+ .response(new_response_handler
97
+ .is_response_void(true)
98
+ .local_error('400',
99
+ 'Invalid ID supplied',
100
+ APIException)
101
+ .local_error('404',
102
+ 'Order not found',
103
+ APIException))
104
+ .execute
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,189 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # UserController
8
+ class UserController < BaseController
9
+ # TODO: type endpoint description here
10
+ # @return [void] response from the API call
11
+ def logout_user
12
+ new_api_call_builder
13
+ .request(new_request_builder(HttpMethodEnum::GET,
14
+ '/user/logout',
15
+ Server::DEFAULT))
16
+ .response(new_response_handler
17
+ .is_response_void(true))
18
+ .execute
19
+ end
20
+
21
+ # Creates list of users with given input array
22
+ # @param [Array[User]] body Optional parameter: Example:
23
+ # @return [User] response from the API call
24
+ def create_users_with_list_input(body: nil)
25
+ new_api_call_builder
26
+ .request(new_request_builder(HttpMethodEnum::POST,
27
+ '/user/createWithList',
28
+ Server::DEFAULT)
29
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
30
+ .body_param(new_parameter(body))
31
+ .header_param(new_parameter('application/json', key: 'accept'))
32
+ .body_serializer(proc do |param| param.to_json unless param.nil? end))
33
+ .response(new_response_handler
34
+ .deserializer(APIHelper.method(:custom_type_deserializer))
35
+ .deserialize_into(User.method(:from_hash))
36
+ .local_error('default',
37
+ 'successful operation',
38
+ APIException))
39
+ .execute
40
+ end
41
+
42
+ # This can only be done by the logged in user.
43
+ # @param [Integer] id Optional parameter: Example:
44
+ # @param [String] username Optional parameter: Example:
45
+ # @param [String] first_name Optional parameter: Example:
46
+ # @param [String] last_name Optional parameter: Example:
47
+ # @param [String] email Optional parameter: Example:
48
+ # @param [String] password Optional parameter: Example:
49
+ # @param [String] phone Optional parameter: Example:
50
+ # @param [Integer] user_status Optional parameter: User Status
51
+ # @return [User] response from the API call
52
+ def create_user(id: nil,
53
+ username: nil,
54
+ first_name: nil,
55
+ last_name: nil,
56
+ email: nil,
57
+ password: nil,
58
+ phone: nil,
59
+ user_status: nil)
60
+ new_api_call_builder
61
+ .request(new_request_builder(HttpMethodEnum::POST,
62
+ '/user',
63
+ Server::DEFAULT)
64
+ .form_param(new_parameter(id, key: 'id'))
65
+ .form_param(new_parameter(username, key: 'username'))
66
+ .form_param(new_parameter(first_name, key: 'firstName'))
67
+ .form_param(new_parameter(last_name, key: 'lastName'))
68
+ .form_param(new_parameter(email, key: 'email'))
69
+ .form_param(new_parameter(password, key: 'password'))
70
+ .form_param(new_parameter(phone, key: 'phone'))
71
+ .form_param(new_parameter(user_status, key: 'userStatus'))
72
+ .header_param(new_parameter('application/x-www-form-urlencoded', key: 'content-type'))
73
+ .header_param(new_parameter('application/json', key: 'accept')))
74
+ .response(new_response_handler
75
+ .deserializer(APIHelper.method(:custom_type_deserializer))
76
+ .deserialize_into(User.method(:from_hash)))
77
+ .execute
78
+ end
79
+
80
+ # TODO: type endpoint description here
81
+ # @param [String] username Optional parameter: The user name for login
82
+ # @param [String] password Optional parameter: The password for login in
83
+ # clear text
84
+ # @return [String] response from the API call
85
+ def login_user(username: nil,
86
+ password: nil)
87
+ new_api_call_builder
88
+ .request(new_request_builder(HttpMethodEnum::GET,
89
+ '/user/login',
90
+ Server::DEFAULT)
91
+ .query_param(new_parameter(username, key: 'username'))
92
+ .query_param(new_parameter(password, key: 'password')))
93
+ .response(new_response_handler
94
+ .deserializer(APIHelper.method(:deserialize_primitive_types))
95
+ .deserialize_into(proc do |response| response.to_s end)
96
+ .is_primitive_response(true)
97
+ .local_error('400',
98
+ 'Invalid username/password supplied',
99
+ APIException))
100
+ .execute
101
+ end
102
+
103
+ # TODO: type endpoint description here
104
+ # @param [String] name Required parameter: The name that needs to be
105
+ # fetched. Use user1 for testing.
106
+ # @return [User] response from the API call
107
+ def get_user_by_name(name)
108
+ new_api_call_builder
109
+ .request(new_request_builder(HttpMethodEnum::GET,
110
+ '/user/{name}',
111
+ Server::DEFAULT)
112
+ .template_param(new_parameter(name, key: 'name')
113
+ .should_encode(true))
114
+ .header_param(new_parameter('application/json', key: 'accept')))
115
+ .response(new_response_handler
116
+ .deserializer(APIHelper.method(:custom_type_deserializer))
117
+ .deserialize_into(User.method(:from_hash))
118
+ .local_error('400',
119
+ 'Invalid username supplied',
120
+ APIException)
121
+ .local_error('404',
122
+ 'User not found',
123
+ APIException))
124
+ .execute
125
+ end
126
+
127
+ # This can only be done by the logged in user.
128
+ # @param [String] name Required parameter: name that need to be deleted
129
+ # @param [Integer] id Optional parameter: Example:
130
+ # @param [String] username Optional parameter: Example:
131
+ # @param [String] first_name Optional parameter: Example:
132
+ # @param [String] last_name Optional parameter: Example:
133
+ # @param [String] email Optional parameter: Example:
134
+ # @param [String] password Optional parameter: Example:
135
+ # @param [String] phone Optional parameter: Example:
136
+ # @param [Integer] user_status Optional parameter: User Status
137
+ # @return [void] response from the API call
138
+ def update_user(name,
139
+ id: nil,
140
+ username: nil,
141
+ first_name: nil,
142
+ last_name: nil,
143
+ email: nil,
144
+ password: nil,
145
+ phone: nil,
146
+ user_status: nil)
147
+ new_api_call_builder
148
+ .request(new_request_builder(HttpMethodEnum::PUT,
149
+ '/user/{name}',
150
+ Server::DEFAULT)
151
+ .template_param(new_parameter(name, key: 'name')
152
+ .should_encode(true))
153
+ .form_param(new_parameter(id, key: 'id'))
154
+ .form_param(new_parameter(username, key: 'username'))
155
+ .form_param(new_parameter(first_name, key: 'firstName'))
156
+ .form_param(new_parameter(last_name, key: 'lastName'))
157
+ .form_param(new_parameter(email, key: 'email'))
158
+ .form_param(new_parameter(password, key: 'password'))
159
+ .form_param(new_parameter(phone, key: 'phone'))
160
+ .form_param(new_parameter(user_status, key: 'userStatus'))
161
+ .header_param(new_parameter('application/x-www-form-urlencoded', key: 'content-type')))
162
+ .response(new_response_handler
163
+ .is_response_void(true))
164
+ .execute
165
+ end
166
+
167
+ # This can only be done by the logged in user.
168
+ # @param [String] name Required parameter: The name that needs to be
169
+ # deleted
170
+ # @return [void] response from the API call
171
+ def delete_user(name)
172
+ new_api_call_builder
173
+ .request(new_request_builder(HttpMethodEnum::DELETE,
174
+ '/user/{name}',
175
+ Server::DEFAULT)
176
+ .template_param(new_parameter(name, key: 'name')
177
+ .should_encode(true)))
178
+ .response(new_response_handler
179
+ .is_response_void(true)
180
+ .local_error('400',
181
+ 'Invalid username supplied',
182
+ APIException)
183
+ .local_error('404',
184
+ 'User not found',
185
+ APIException))
186
+ .execute
187
+ end
188
+ end
189
+ end
@@ -0,0 +1,10 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Class for exceptions when there is a network error, status code error, etc.
8
+ class APIException < CoreLibrary::ApiException
9
+ end
10
+ end
@@ -0,0 +1,42 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Utility class for custom header authorization.
8
+ class CustomHeaderAuthentication < CoreLibrary::HeaderAuth
9
+ # Display error message on occurrence of authentication failure.
10
+ # @returns [String] The oAuth error message.
11
+ def error_message
12
+ 'CustomHeaderAuthentication: api_key is undefined.'
13
+ end
14
+
15
+ # Initialization constructor.
16
+ def initialize(custom_header_authentication_credentials)
17
+ auth_params = {}
18
+ auth_params['api_key'] = custom_header_authentication_credentials.api_key unless
19
+ custom_header_authentication_credentials.nil? || custom_header_authentication_credentials.api_key.nil?
20
+
21
+ super auth_params
22
+ end
23
+ end
24
+
25
+ # Data class for CustomHeaderAuthenticationCredentials.
26
+ # Data class for CustomHeaderAuthenticationCredentials.
27
+ class CustomHeaderAuthenticationCredentials
28
+ attr_reader :api_key
29
+
30
+ def initialize(api_key:)
31
+ raise ArgumentError, 'api_key cannot be nil' if api_key.nil?
32
+
33
+ @api_key = api_key
34
+ end
35
+
36
+ def clone_with(api_key: nil)
37
+ api_key ||= self.api_key
38
+
39
+ CustomHeaderAuthenticationCredentials.new(api_key: api_key)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,10 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # HttpCallBack allows defining callables for pre and post API calls.
8
+ class HttpCallBack < CoreLibrary::HttpCallback
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # HTTP Methods Enumeration.
8
+ class HttpMethodEnum < CoreLibrary::HttpMethod
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Represents a single Http Request.
8
+ class HttpRequest < CoreLibrary::HttpRequest
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Http response received.
8
+ class HttpResponse < CoreLibrary::HttpResponse
9
+ end
10
+ end
@@ -0,0 +1,77 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Address Model.
8
+ class Address < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :street
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :city
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [String]
22
+ attr_accessor :state
23
+
24
+ # TODO: Write general description for this method
25
+ # @return [String]
26
+ attr_accessor :zip
27
+
28
+ # A mapping from model property names to API property names.
29
+ def self.names
30
+ @_hash = {} if @_hash.nil?
31
+ @_hash['street'] = 'street'
32
+ @_hash['city'] = 'city'
33
+ @_hash['state'] = 'state'
34
+ @_hash['zip'] = 'zip'
35
+ @_hash
36
+ end
37
+
38
+ # An array for optional fields
39
+ def self.optionals
40
+ %w[
41
+ street
42
+ city
43
+ state
44
+ zip
45
+ ]
46
+ end
47
+
48
+ # An array for nullable fields
49
+ def self.nullables
50
+ []
51
+ end
52
+
53
+ def initialize(street = SKIP, city = SKIP, state = SKIP, zip = SKIP)
54
+ @street = street unless street == SKIP
55
+ @city = city unless city == SKIP
56
+ @state = state unless state == SKIP
57
+ @zip = zip unless zip == SKIP
58
+ end
59
+
60
+ # Creates an instance of the object from a hash.
61
+ def self.from_hash(hash)
62
+ return nil unless hash
63
+
64
+ # Extract variables from the hash.
65
+ street = hash.key?('street') ? hash['street'] : SKIP
66
+ city = hash.key?('city') ? hash['city'] : SKIP
67
+ state = hash.key?('state') ? hash['state'] : SKIP
68
+ zip = hash.key?('zip') ? hash['zip'] : SKIP
69
+
70
+ # Create object from extracted values.
71
+ Address.new(street,
72
+ city,
73
+ state,
74
+ zip)
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,62 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Base model.
8
+ class BaseModel < CoreLibrary::BaseModel
9
+ # Returns a Hash representation of the current object.
10
+ def to_hash
11
+ # validating the model being serialized
12
+ self.class.validate(self) if self.class.respond_to?(:validate)
13
+
14
+ hash = {}
15
+ instance_variables.each do |name|
16
+ value = instance_variable_get(name)
17
+ name = name[1..]
18
+ key = self.class.names.key?(name) ? self.class.names[name] : name
19
+ optional_fields = self.class.optionals
20
+ nullable_fields = self.class.nullables
21
+ if value.nil?
22
+ next unless nullable_fields.include?(name)
23
+
24
+ if !optional_fields.include?(name) && !nullable_fields.include?(name)
25
+ raise ArgumentError,
26
+ "`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value."
27
+ end
28
+ end
29
+
30
+ hash[key] = nil
31
+ unless value.nil?
32
+ if respond_to?("to_custom_#{name}")
33
+ if (value.instance_of? Array) || (value.instance_of? Hash)
34
+ params = [hash, key]
35
+ hash[key] = send("to_custom_#{name}", *params)
36
+ else
37
+ hash[key] = send("to_custom_#{name}")
38
+ end
39
+ elsif respond_to?("to_union_type_#{name}")
40
+ hash[key] = send("to_union_type_#{name}")
41
+ elsif value.instance_of? Array
42
+ hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
43
+ elsif value.instance_of? Hash
44
+ hash[key] = {}
45
+ value.each do |k, v|
46
+ hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
47
+ end
48
+ else
49
+ hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
50
+ end
51
+ end
52
+ end
53
+ hash
54
+ end
55
+
56
+ # Returns a JSON representation of the curent object.
57
+ def to_json(options = {})
58
+ hash = to_hash
59
+ hash.to_json(options)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,59 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Category Model.
8
+ class Category < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Integer]
14
+ attr_accessor :id
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :name
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['id'] = 'id'
24
+ @_hash['name'] = 'name'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ id
32
+ name
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(id = SKIP, name = SKIP)
42
+ @id = id unless id == SKIP
43
+ @name = name unless name == SKIP
44
+ end
45
+
46
+ # Creates an instance of the object from a hash.
47
+ def self.from_hash(hash)
48
+ return nil unless hash
49
+
50
+ # Extract variables from the hash.
51
+ id = hash.key?('id') ? hash['id'] : SKIP
52
+ name = hash.key?('name') ? hash['name'] : SKIP
53
+
54
+ # Create object from extracted values.
55
+ Category.new(id,
56
+ name)
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,77 @@
1
+ # swagger_petstore_open_api30
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SwaggerPetstoreOpenApi30
7
+ # Customer Model.
8
+ class Customer < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Integer]
14
+ attr_accessor :id
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :username
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [Array[Address]]
22
+ attr_accessor :address
23
+
24
+ # A mapping from model property names to API property names.
25
+ def self.names
26
+ @_hash = {} if @_hash.nil?
27
+ @_hash['id'] = 'id'
28
+ @_hash['username'] = 'username'
29
+ @_hash['address'] = 'address'
30
+ @_hash
31
+ end
32
+
33
+ # An array for optional fields
34
+ def self.optionals
35
+ %w[
36
+ id
37
+ username
38
+ address
39
+ ]
40
+ end
41
+
42
+ # An array for nullable fields
43
+ def self.nullables
44
+ []
45
+ end
46
+
47
+ def initialize(id = SKIP, username = SKIP, address = SKIP)
48
+ @id = id unless id == SKIP
49
+ @username = username unless username == SKIP
50
+ @address = address unless address == SKIP
51
+ end
52
+
53
+ # Creates an instance of the object from a hash.
54
+ def self.from_hash(hash)
55
+ return nil unless hash
56
+
57
+ # Extract variables from the hash.
58
+ id = hash.key?('id') ? hash['id'] : SKIP
59
+ username = hash.key?('username') ? hash['username'] : SKIP
60
+ # Parameter is an array, so we need to iterate through it
61
+ address = nil
62
+ unless hash['address'].nil?
63
+ address = []
64
+ hash['address'].each do |structure|
65
+ address << (Address.from_hash(structure) if structure)
66
+ end
67
+ end
68
+
69
+ address = SKIP unless hash.key?('address')
70
+
71
+ # Create object from extracted values.
72
+ Customer.new(id,
73
+ username,
74
+ address)
75
+ end
76
+ end
77
+ end