bullet_train-api 1.6.25 → 1.6.27
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/helpers/api/open_api_helper.rb +46 -2
- data/app/views/api/v1/open_api/invitations/_paths.yaml.erb +1 -0
- data/app/views/api/v1/open_api/shared/_paths.yaml.erb +10 -5
- data/app/views/api/v1/open_api/teams/_paths.yaml.erb +3 -0
- data/app/views/api/v1/open_api/users/_paths.yaml.erb +3 -0
- data/lib/bullet_train/api/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8773d252b03c1ebb3342c9ee21e302f2b7bd2e6732da748c407f7e0796002c1
|
4
|
+
data.tar.gz: f7581ce2bc65fd5cd1f49324ddddb8b5936e1ee88bd431063cc82c253acc1c1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b64ba34512b1443e2a4d314c63aa691d700d20f398f6eb3fafbe397dba225f8c4415564d5a57f990ed9146183ff7c1814104b78b14fdb862da8469216d4e2322
|
7
|
+
data.tar.gz: 037ed5525018b8f23bc94cc737f1142991dbf3697c1501100e4361113a0db619b73550a5415db2845fb01b884af58ae4a688fbcc8d4c4e91008edda69237d1e7
|
@@ -24,7 +24,7 @@ module Api
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def automatic_paths_for(model, parent, except: [])
|
27
|
-
output = render("api/#{@version}/open_api/shared/paths", except: except)
|
27
|
+
output = render("api/#{@version}/open_api/shared/paths", model_name: model.model_name.collection, except: except)
|
28
28
|
output = Scaffolding::Transformer.new(model.name, [parent&.name]).transform_string(output).html_safe
|
29
29
|
|
30
30
|
custom_actions_file_path = "api/#{@version}/open_api/#{model.model_name.collection}/paths"
|
@@ -47,7 +47,9 @@ module Api
|
|
47
47
|
indent(output, 1)
|
48
48
|
end
|
49
49
|
|
50
|
-
def automatic_components_for(model,
|
50
|
+
def automatic_components_for(model, **options)
|
51
|
+
locals = options.delete(:locals) || {}
|
52
|
+
|
51
53
|
path = "app/views/api/#{@version}"
|
52
54
|
paths = [path, "app/views"] + gem_paths.product(%W[/#{path} /app/views]).map(&:join)
|
53
55
|
|
@@ -76,6 +78,9 @@ module Api
|
|
76
78
|
|
77
79
|
attributes_output = JSON.parse(schema_json)
|
78
80
|
|
81
|
+
# Allow customization of Attributes
|
82
|
+
customize_component!(attributes_output, options[:attributes]) if options[:attributes]
|
83
|
+
|
79
84
|
# Add "Attributes" part to $ref's
|
80
85
|
update_ref_values!(attributes_output)
|
81
86
|
|
@@ -106,6 +111,9 @@ module Api
|
|
106
111
|
parameters_output["properties"].select! { |key| strong_parameter_keys.include?(key.to_sym) }
|
107
112
|
parameters_output["example"]&.select! { |key, value| strong_parameter_keys.include?(key.to_sym) && value.present? }
|
108
113
|
|
114
|
+
# Allow customization of Parameters
|
115
|
+
customize_component!(parameters_output, options[:parameters]) if options[:parameters]
|
116
|
+
|
109
117
|
(
|
110
118
|
indent(attributes_output.to_yaml.gsub("---", "#{model.name.gsub("::", "")}Attributes:"), 3) +
|
111
119
|
indent(" " + parameters_output.to_yaml.gsub("---", "#{model.name.gsub("::", "")}Parameters:"), 3)
|
@@ -164,5 +172,41 @@ module Api
|
|
164
172
|
end
|
165
173
|
end
|
166
174
|
end
|
175
|
+
|
176
|
+
def customize_component!(original, custom)
|
177
|
+
custom = custom.deep_stringify_keys.deep_transform_values { |v| v.is_a?(Symbol) ? v.to_s : v }
|
178
|
+
|
179
|
+
if custom.key?("add")
|
180
|
+
custom["add"].each do |property, details|
|
181
|
+
if details["required"]
|
182
|
+
original["required"] << property
|
183
|
+
details.delete("required")
|
184
|
+
end
|
185
|
+
original["properties"][property] = details
|
186
|
+
if details["example"]
|
187
|
+
original["example"][property] = details["example"]
|
188
|
+
details.delete("example")
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
if custom.key?("remove")
|
194
|
+
Array(custom["remove"]).each do |property|
|
195
|
+
original["required"].delete(property)
|
196
|
+
original["properties"].delete(property)
|
197
|
+
original["example"].delete(property)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
if custom.key?("only")
|
202
|
+
original["properties"].keys.each do |property|
|
203
|
+
unless Array(custom["only"]).include?(property)
|
204
|
+
original["properties"].delete(property)
|
205
|
+
original["required"].delete(property)
|
206
|
+
original["example"].delete(property)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
167
211
|
end
|
168
212
|
end
|
@@ -5,7 +5,8 @@
|
|
5
5
|
get:
|
6
6
|
tags:
|
7
7
|
- Scaffolding::CompletelyConcrete::TangibleThing
|
8
|
-
summary: "List Tangible Things"
|
8
|
+
summary: <%= I18n.t("#{model_name}.api.paths.index.summary", default: "List Tangible Things") %>
|
9
|
+
description: <%= I18n.t("#{model_name}.api.paths.index.description", default: "List Tangible Things") %>
|
9
10
|
operationId: listScaffoldingCompletelyConcreteTangibleThings
|
10
11
|
parameters:
|
11
12
|
- name: absolutely_abstract_creative_concept_id
|
@@ -37,7 +38,8 @@
|
|
37
38
|
post:
|
38
39
|
tags:
|
39
40
|
- Scaffolding::CompletelyConcrete::TangibleThing
|
40
|
-
summary: "Create Tangible Thing"
|
41
|
+
summary: <%= I18n.t("#{model_name}.api.paths.create.summary", default: "Create Tangible Thing") %>
|
42
|
+
description: <%= I18n.t("#{model_name}.api.paths.create.description", default: "Create Tangible Thing") %>
|
41
43
|
operationId: createScaffoldingCompletelyConcreteTangibleThings
|
42
44
|
parameters:
|
43
45
|
- name: absolutely_abstract_creative_concept_id
|
@@ -77,7 +79,8 @@
|
|
77
79
|
get:
|
78
80
|
tags:
|
79
81
|
- Scaffolding::CompletelyConcrete::TangibleThing
|
80
|
-
summary: "Fetch Tangible Thing"
|
82
|
+
summary: <%= I18n.t("#{model_name}.api.paths.show.summary", default: "Fetch Tangible Thing") %>
|
83
|
+
description: <%= I18n.t("#{model_name}.api.paths.show.description", default: "Fetch Tangible Thing") %>
|
81
84
|
operationId: getScaffoldingCompletelyConcreteTangibleThings
|
82
85
|
parameters:
|
83
86
|
- $ref: "#/components/parameters/id"
|
@@ -97,7 +100,8 @@
|
|
97
100
|
put:
|
98
101
|
tags:
|
99
102
|
- Scaffolding::CompletelyConcrete::TangibleThing
|
100
|
-
summary: "Update Tangible Thing"
|
103
|
+
summary: <%= I18n.t("#{model_name}.api.paths.update.summary", default: "Update Tangible Thing") %>
|
104
|
+
description: <%= I18n.t("#{model_name}.api.paths.update.description", default: "Update Tangible Thing") %>
|
101
105
|
operationId: updateScaffoldingCompletelyConcreteTangibleThings
|
102
106
|
parameters:
|
103
107
|
- $ref: "#/components/parameters/id"
|
@@ -130,7 +134,8 @@
|
|
130
134
|
delete:
|
131
135
|
tags:
|
132
136
|
- Scaffolding::CompletelyConcrete::TangibleThing
|
133
|
-
summary: "
|
137
|
+
summary: <%= I18n.t("#{model_name}.api.paths.index.summary", default: "List Tangible Things") %>
|
138
|
+
description: <%= I18n.t("#{model_name}.api.paths.index.description", default: "List Tangible Things") %>
|
134
139
|
operationId: removeScaffoldingCompletelyConcreteTangibleThings
|
135
140
|
parameters:
|
136
141
|
- $ref: "#/components/parameters/id"
|
@@ -3,6 +3,7 @@
|
|
3
3
|
tags:
|
4
4
|
- Team
|
5
5
|
summary: "List Teams"
|
6
|
+
description: "List all Teams"
|
6
7
|
operationId: listTeams
|
7
8
|
parameters:
|
8
9
|
- $ref: "#/components/parameters/after"
|
@@ -30,6 +31,7 @@
|
|
30
31
|
tags:
|
31
32
|
- Team
|
32
33
|
summary: "Fetch Team"
|
34
|
+
description: "Fetch a single Team"
|
33
35
|
operationId: fetchTeam
|
34
36
|
parameters:
|
35
37
|
- $ref: "#/components/parameters/id"
|
@@ -48,6 +50,7 @@
|
|
48
50
|
tags:
|
49
51
|
- Team
|
50
52
|
summary: "Update Team"
|
53
|
+
description: "Update a single Team"
|
51
54
|
operationId: updateTeam
|
52
55
|
parameters:
|
53
56
|
- $ref: "#/components/parameters/id"
|
@@ -3,6 +3,7 @@
|
|
3
3
|
tags:
|
4
4
|
- User
|
5
5
|
summary: "List Users"
|
6
|
+
description: "List all Users"
|
6
7
|
operationId: listUsers
|
7
8
|
parameters:
|
8
9
|
- $ref: "#/components/parameters/after"
|
@@ -29,6 +30,7 @@
|
|
29
30
|
tags:
|
30
31
|
- User
|
31
32
|
summary: "Fetch User"
|
33
|
+
description: "Fetch a single User"
|
32
34
|
operationId: fetchUser
|
33
35
|
parameters:
|
34
36
|
- $ref: "#/components/parameters/id"
|
@@ -47,6 +49,7 @@
|
|
47
49
|
tags:
|
48
50
|
- User
|
49
51
|
summary: "Update User"
|
52
|
+
description: "Update a single User"
|
50
53
|
operationId: updateUser
|
51
54
|
parameters:
|
52
55
|
- $ref: "#/components/parameters/id"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet_train-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Culver
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: standard
|
@@ -261,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
261
261
|
- !ruby/object:Gem::Version
|
262
262
|
version: '0'
|
263
263
|
requirements: []
|
264
|
-
rubygems_version: 3.
|
264
|
+
rubygems_version: 3.5.3
|
265
265
|
signing_key:
|
266
266
|
specification_version: 4
|
267
267
|
summary: Bullet Train API
|