bullet_train-api 1.6.25 → 1.6.27
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/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
|