Skip to content
This repository was archived by the owner on Nov 8, 2024. It is now read-only.

Commit 9373a1d

Browse files
committed
Re-enable prameter section for action
1 parent c3b11a0 commit 9373a1d

File tree

3 files changed

+51
-3
lines changed

3 files changed

+51
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "protagonist",
3-
"version": "0.3.0",
3+
"version": "0.4.0",
44
"description": "API Blueprint Parser",
55
"author": "Apiary.io <support@apiary.io>",
66
"main": "./build/Release/protagonist",

src/blueprint.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,10 @@ static Local<Object> WrapAction(const snowcrash::Action& action)
207207
// HTTP Request Method
208208
actionObject->Set(String::NewSymbol(snowcrash::SerializeKey::Method.c_str()), String::New(action.method.c_str()));
209209

210+
// Parameters
211+
Local<Object> parameters = WrapParameters(action.parameters);
212+
actionObject->Set(String::NewSymbol(snowcrash::SerializeKey::Parameters.c_str()), parameters);
213+
210214
// Headers
211215
Local<Object> headers = WrapHeaders(action.headers);
212216
actionObject->Set(String::NewSymbol(snowcrash::SerializeKey::Headers.c_str()), headers);

test/test.coffee

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,13 +286,13 @@ C: 3
286286
assert err.code != 0
287287
assert.isDefined err.location
288288

289-
it 'parses parameters', ->
289+
it 'parses resource parameters', ->
290290
source = """
291291
# /machine{?limit}
292292
293293
+ Parameters
294294
+ limit = `20` (optional, number, `42`) ... This is a limit
295-
+ Values:
295+
+ Values
296296
+ `20`
297297
+ `42`
298298
+ `53`
@@ -343,3 +343,47 @@ C: 3
343343

344344
assert.isDefined values[2]
345345
assert.strictEqual values[2], "53"
346+
347+
it 'parses action parameters', ->
348+
source = """
349+
# GET /coupons/{id}
350+
351+
+ Parameters
352+
+ id (number, `1001`) ... Id of coupon
353+
354+
+ Response 204
355+
"""
356+
357+
protagonist.parse source, (err, result) ->
358+
assert.isNull err
359+
360+
assert.strictEqual result.ast.resourceGroups.length, 1
361+
assert.strictEqual result.ast.resourceGroups[0].resources.length, 1
362+
assert.strictEqual result.ast.resourceGroups[0].resources[0].actions.length, 1
363+
364+
action = result.ast.resourceGroups[0].resources[0].actions[0]
365+
assert.strictEqual action.method, "GET"
366+
367+
assert.isDefined action.parameters
368+
assert.strictEqual Object.keys(action.parameters).length, 1
369+
370+
assert.isDefined action.parameters.id
371+
372+
assert.isDefined action.parameters.id.description
373+
assert.strictEqual action.parameters.id.description, "Id of coupon"
374+
375+
assert.isDefined action.parameters.id.type
376+
assert.strictEqual action.parameters.id.type, "number"
377+
378+
assert.isDefined action.parameters.id.required
379+
assert.strictEqual action.parameters.id.required, true
380+
381+
assert.isDefined action.parameters.id.default
382+
assert.strictEqual action.parameters.id.default, ""
383+
384+
assert.isDefined action.parameters.id.example
385+
assert.strictEqual action.parameters.id.example, "1001"
386+
387+
assert.isDefined action.parameters.id.values
388+
assert.strictEqual action.parameters.id.values.length, 0
389+

0 commit comments

Comments
 (0)