open_api_import 0.8.7 → 0.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/open_api_import.rb +58 -20
- metadata +23 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5fa1a76a617230a0abfacaa9dac96af4eb552527b48101359073c94634a6ca83
|
4
|
+
data.tar.gz: f8c3f3bf50d9aeb17cd5910f6ab26fa52692420ae20af9f67a58536295787beb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ca17b645ee10cecec6cbbba624a50128b6b1efaa8afc07fb553a5db55f01097ac78826d89369b27b3a0a0ecd51486c7562d04ecfefaa47abf46efc50506db8b
|
7
|
+
data.tar.gz: 91ad90bf66880330429278a558c9a9a72caf33de24533e475b36a1aa4b78b50024282f71edbdf0f3c538a6096dbaaf282567f8a65b7f4541a9eb43c8d6890b15
|
data/lib/open_api_import.rb
CHANGED
@@ -127,6 +127,7 @@ class OpenApiImport
|
|
127
127
|
params_query = []
|
128
128
|
params_required = []
|
129
129
|
description_parameters = []
|
130
|
+
data_form = []
|
130
131
|
data_required = []
|
131
132
|
data_read_only = []
|
132
133
|
data_default = []
|
@@ -135,7 +136,7 @@ class OpenApiImport
|
|
135
136
|
responses = []
|
136
137
|
|
137
138
|
# for the case operationId is missing
|
138
|
-
cont[:operationId] = "
|
139
|
+
cont[:operationId] = "undefined" unless cont.key?(:operationId)
|
139
140
|
if create_method_name == :path
|
140
141
|
method_name = (met.to_s + "_" + path.path.to_s).snake_case
|
141
142
|
method_name.chop! if method_name[-1] == "_"
|
@@ -219,7 +220,8 @@ class OpenApiImport
|
|
219
220
|
response_example = []
|
220
221
|
response_example = get_response_examples(v)
|
221
222
|
|
222
|
-
data_pattern += get_patterns(
|
223
|
+
data_pattern += get_patterns('', v[:schema]) if v.key?(:schema)
|
224
|
+
data_pattern.uniq!
|
223
225
|
v[:description] = v[:description].to_s.gsub("'", %q(\\\'))
|
224
226
|
|
225
227
|
if !response_example.empty?
|
@@ -277,8 +279,26 @@ class OpenApiImport
|
|
277
279
|
params_query << p[:name]
|
278
280
|
params_required << p[:name] if p[:required].to_s=="true"
|
279
281
|
description_parameters << "# #{p[:name]}: (#{type}) #{"(required)" if p[:required].to_s=="true"} #{p[:description]}"
|
282
|
+
elsif p[:in] == "formData" or p[:in] == "formdata"
|
283
|
+
#todo: take in consideration: default, required
|
284
|
+
#todo: see if we should add the required as params to the method and not required as options
|
285
|
+
#todo: set on data the required fields with the values from args
|
286
|
+
|
287
|
+
description_parameters << "# #{p[:name]}: (#{p[:type]}) #{p[:description]}"
|
288
|
+
case p[:type]
|
289
|
+
when /^string$/i
|
290
|
+
data_form << "#{p[:name]}: ''"
|
291
|
+
when /^boolean$/i
|
292
|
+
data_form << "#{p[:name]}: true"
|
293
|
+
when /^number$/i
|
294
|
+
data_form << "#{p[:name]}: 0"
|
295
|
+
when /^integer$/i
|
296
|
+
data_form << "#{p[:name]}: 0"
|
297
|
+
else
|
298
|
+
puts "! on formData not supported type #{p[:type]}"
|
299
|
+
end
|
300
|
+
|
280
301
|
elsif p[:in] == "body"
|
281
|
-
|
282
302
|
if p.keys.include?(:schema)
|
283
303
|
if p[:schema].key?(:oneOf)
|
284
304
|
bodies = p[:schema][:oneOf]
|
@@ -327,6 +347,7 @@ class OpenApiImport
|
|
327
347
|
end
|
328
348
|
|
329
349
|
data_pattern += get_patterns(dpk,dpv)
|
350
|
+
data_pattern.uniq!
|
330
351
|
|
331
352
|
if dpv.keys.include?(:readOnly) and dpv[:readOnly] == true
|
332
353
|
data_read_only << dpk
|
@@ -360,6 +381,10 @@ class OpenApiImport
|
|
360
381
|
end
|
361
382
|
end
|
362
383
|
end
|
384
|
+
elsif p[:in]=="header"
|
385
|
+
#todo: see how we can treat those cases
|
386
|
+
else
|
387
|
+
puts "! not imported data with :in:#{p[:in]} => #{p.inspect}"
|
363
388
|
end
|
364
389
|
end
|
365
390
|
|
@@ -441,6 +466,10 @@ class OpenApiImport
|
|
441
466
|
output << "},"
|
442
467
|
end
|
443
468
|
|
469
|
+
unless data_form.empty?
|
470
|
+
data_examples << data_form
|
471
|
+
end
|
472
|
+
|
444
473
|
unless data_examples.empty?
|
445
474
|
unless data_required.empty?
|
446
475
|
reqdata = []
|
@@ -808,47 +837,56 @@ class OpenApiImport
|
|
808
837
|
#todo: control better the cases with back slashes
|
809
838
|
if dpv[:pattern].include?('\\\\/')
|
810
839
|
#for cases like this: ^[^\.\\/:*?"<>|][^\\/:*?"<>|]{0,13}[^\.\\/:*?"<>|]?$
|
811
|
-
data_pattern << "#{dpk}: /#{dpv[:pattern].to_s.gsub('\/','/')}/"
|
840
|
+
data_pattern << "'#{dpk}': /#{dpv[:pattern].to_s.gsub('\/','/')}/"
|
812
841
|
else
|
813
|
-
data_pattern << "#{dpk}: /#{dpv[:pattern].to_s}/"
|
842
|
+
data_pattern << "'#{dpk}': /#{dpv[:pattern].to_s}/"
|
814
843
|
end
|
815
844
|
elsif dpv.key?(:minLength) and dpv.key?(:maxLength)
|
816
|
-
data_pattern << "#{dpk}: :'#{dpv[:minLength]}-#{dpv[:maxLength]}:LN$'"
|
845
|
+
data_pattern << "'#{dpk}': :'#{dpv[:minLength]}-#{dpv[:maxLength]}:LN$'"
|
817
846
|
elsif dpv.key?(:minLength) and !dpv.key?(:maxLength)
|
818
|
-
data_pattern << "#{dpk}: :'#{dpv[:minLength]}:LN$'"
|
847
|
+
data_pattern << "'#{dpk}': :'#{dpv[:minLength]}:LN$'"
|
819
848
|
elsif !dpv.key?(:minLength) and dpv.key?(:maxLength)
|
820
|
-
data_pattern << "#{dpk}: :'0-#{dpv[:maxLength]}:LN$'"
|
849
|
+
data_pattern << "'#{dpk}': :'0-#{dpv[:maxLength]}:LN$'"
|
821
850
|
elsif dpv.key?(:minimum) and dpv.key?(:maximum) and dpv[:type]=='string'
|
822
|
-
data_pattern << "#{dpk}: :'#{dpv[:minimum]}-#{dpv[:maximum]}:LN$'"
|
851
|
+
data_pattern << "'#{dpk}': :'#{dpv[:minimum]}-#{dpv[:maximum]}:LN$'"
|
823
852
|
elsif dpv.key?(:minimum) and dpv.key?(:maximum)
|
824
|
-
data_pattern << "#{dpk}: #{dpv[:minimum]}..#{dpv[:maximum]}"
|
853
|
+
data_pattern << "'#{dpk}': #{dpv[:minimum]}..#{dpv[:maximum]}"
|
825
854
|
elsif dpv.key?(:minimum) and !dpv.key?(:maximum)
|
826
855
|
if RUBY_VERSION >= '2.6.0'
|
827
|
-
data_pattern << "#{dpk}: #{dpv[:minimum]}.."
|
856
|
+
data_pattern << "'#{dpk}': #{dpv[:minimum]}.."
|
828
857
|
else
|
829
|
-
data_pattern << "
|
858
|
+
data_pattern << "#'#{dpk}': #{dpv[:minimum]}.. # INFINITE only working on ruby>=2.6.0"
|
830
859
|
end
|
831
860
|
elsif !dpv.key?(:minimum) and dpv.key?(:maximum)
|
832
|
-
data_pattern << "#{dpk}: 0..#{dpv[:maximum]}"
|
833
|
-
elsif dpv.key?(:enum)
|
834
|
-
data_pattern << "#{dpk}: :'#{dpv[:enum].join('|')}'"
|
861
|
+
data_pattern << "'#{dpk}': 0..#{dpv[:maximum]}"
|
835
862
|
elsif dpv[:format] == 'date-time'
|
836
|
-
data_pattern << "#{dpk}: DateTime"
|
863
|
+
data_pattern << "'#{dpk}': DateTime"
|
837
864
|
elsif dpv[:type] == 'boolean'
|
838
|
-
data_pattern << "#{dpk}: Boolean"
|
865
|
+
data_pattern << "'#{dpk}': Boolean"
|
866
|
+
elsif dpv.key?(:enum)
|
867
|
+
data_pattern << "'#{dpk}': :'#{dpv[:enum].join('|')}'"
|
839
868
|
elsif dpv[:type] == 'array' and dpv.key?(:items) and dpv[:items].is_a?(Hash) and dpv[:items].key?(:enum) and dpv[:items][:enum].is_a?(Array)
|
840
869
|
#{:title=>"Balala", :type=>"array", :items=>{:type=>"string", :enum=>["uno","dos"], :example=>"uno"}}
|
841
|
-
data_pattern << "#{dpk}: [:'#{dpv[:items][:enum].join('|')}']"
|
870
|
+
data_pattern << "'#{dpk}': [:'#{dpv[:items][:enum].join('|')}']"
|
842
871
|
elsif dpv[:type] == 'array' and dpv.key?(:items) and dpv[:items].is_a?(Hash) and !dpv[:items].key?(:enum) and dpv[:items].key?(:properties)
|
843
872
|
#{:title=>"Balala", :type=>"array", :items=>{title: 'xxxx, properties: {server: {enum:['ibm','msa','pytan']}}}
|
844
873
|
dpv[:items][:properties].each do |dpkk,dpvv|
|
845
|
-
|
874
|
+
if dpk == ''
|
875
|
+
data_pattern += get_patterns("#{dpkk}",dpvv)
|
876
|
+
else
|
877
|
+
data_pattern += get_patterns("#{dpk}.#{dpkk}",dpvv)
|
878
|
+
end
|
846
879
|
end
|
847
880
|
elsif dpv[:type] == 'object' and dpv.key?(:properties)
|
848
881
|
dpv[:properties].each do |dpkk,dpvv|
|
849
|
-
|
882
|
+
if dpk == ''
|
883
|
+
data_pattern += get_patterns("#{dpkk}",dpvv)
|
884
|
+
else
|
885
|
+
data_pattern += get_patterns("#{dpk}.#{dpkk}",dpvv)
|
886
|
+
end
|
850
887
|
end
|
851
888
|
end
|
889
|
+
data_pattern.uniq!
|
852
890
|
return data_pattern
|
853
891
|
|
854
892
|
end
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: open_api_import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oas_parser
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0.16'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 0.16.0
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.16'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0.16'
|
30
27
|
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 0.16.0
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.16'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rufo
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,42 +54,42 @@ dependencies:
|
|
54
54
|
name: nice_hash
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '1.13'
|
60
57
|
- - ">="
|
61
58
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.
|
59
|
+
version: 1.14.0
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.14'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '1.13'
|
70
67
|
- - ">="
|
71
68
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.
|
69
|
+
version: 1.14.0
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '1.14'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: rspec
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
|
-
- - "~>"
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: '3.8'
|
80
77
|
- - ">="
|
81
78
|
- !ruby/object:Gem::Version
|
82
79
|
version: 3.8.0
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.8'
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '3.8'
|
90
87
|
- - ">="
|
91
88
|
- !ruby/object:Gem::Version
|
92
89
|
version: 3.8.0
|
90
|
+
- - "~>"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '3.8'
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: coveralls
|
95
95
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,8 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: '0'
|
148
148
|
requirements: []
|
149
|
-
|
150
|
-
rubygems_version: 2.7.6
|
149
|
+
rubygems_version: 3.0.3
|
151
150
|
signing_key:
|
152
151
|
specification_version: 4
|
153
152
|
summary: OpenApiImport -- Import a Swagger or Open API file and create a Ruby Request
|