Skip to content

Commit 89c8a9f

Browse files
idyllTim Vandecasteele
authored andcommitted
Refactored the header parameters to product similar output to the params block.
1 parent cfc1841 commit 89c8a9f

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

README.markdown

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,16 @@ to specify header parameters seperately in a block after the description.
4949

5050
``` ruby
5151
desc "Return super-secret information", {
52-
headers: [
53-
{
54-
name: "XAuthToken",
52+
headers: {
53+
"XAuthToken" => {
5554
description: "Valdates your identity",
5655
required: true
5756
},
58-
{
59-
name: "XOptionalHeader",
57+
XOptionalHeader" => {
6058
description: "Not reallly needed",
6159
required: false
6260
}
63-
]
61+
}
6462
}
6563
```
6664

lib/grape-swagger.rb

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,14 @@ def parse_params(params, path, method)
130130

131131
def parse_header_params(params)
132132
if params
133-
params.map do |details|
134-
name = details[:name]
133+
params.map do |param, value|
135134
dataType = 'String'
136-
description = details[:description]
137-
required = details[:required]
135+
description = value.is_a?(Hash) ? value[:description] : ''
136+
required = value.is_a?(Hash) ? !!value[:required] : false
138137
paramType = "header"
139138
{
140139
paramType: paramType,
141-
name: name,
140+
name: param,
142141
description: description,
143142
dataType: dataType,
144143
required: required

spec/grape-swagger-helper_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class HelperTestAPI < Grape::API
5959

6060
context "parsing header parameters" do
6161
it "should parse params for the header" do
62-
params = [{name: "XAuthToken", description: "A required header.", required: true}]
62+
params = {"XAuthToken" => { description: "A required header.", required: true}}
6363
@api.parse_header_params(params).should ==
6464
[
6565
{paramType: "header", name: "XAuthToken", description:"A required header.", dataType: "String", required: true}

spec/simple_mounted_api_spec.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ class SimpleMountedApi < Grape::API
1111
end
1212

1313
desc 'this gets something else', {
14-
:headers => [{name: "XAuthToken", description: "A required header.", required: true}]
14+
:headers => {
15+
"XAuthToken" => {description: "A required header.", required: true},
16+
"XOtherHeader" => {description: "An optional header.", required: false}
17+
}
1518
}
1619
get '/simple_with_headers' do
1720
{:bla => 'something_else'}
@@ -38,6 +41,6 @@ def app; SimpleApi end
3841

3942
it "retrieves the documentation for mounted-api that includes headers" do
4043
get '/swagger_doc/simple_with_headers'
41-
last_response.body.should == "{:apiVersion=>\"0.1\", :swaggerVersion=>\"1.1\", :basePath=>\"http://example.org\", :resourcePath=>\"\", :apis=>[{:path=>\"/simple_with_headers.{format}\", :operations=>[{:notes=>nil, :summary=>\"this gets something else\", :nickname=>\"GET-simple_with_headers---format-\", :httpMethod=>\"GET\", :parameters=>[{:paramType=>\"header\", :name=>\"XAuthToken\", :description=>\"A required header.\", :dataType=>\"String\", :required=>true}]}]}]}"
44+
last_response.body.should == "{:apiVersion=>\"0.1\", :swaggerVersion=>\"1.1\", :basePath=>\"http://example.org\", :resourcePath=>\"\", :apis=>[{:path=>\"/simple_with_headers.{format}\", :operations=>[{:notes=>nil, :summary=>\"this gets something else\", :nickname=>\"GET-simple_with_headers---format-\", :httpMethod=>\"GET\", :parameters=>[{:paramType=>\"header\", :name=>\"XAuthToken\", :description=>\"A required header.\", :dataType=>\"String\", :required=>true}, {:paramType=>\"header\", :name=>\"XOtherHeader\", :description=>\"An optional header.\", :dataType=>\"String\", :required=>false}]}]}]}"
4245
end
4346
end

0 commit comments

Comments
 (0)