nationbuilder-rb 1.3.2 → 1.3.3

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/README.md +9 -0
  4. data/VERSION +1 -1
  5. data/lib/api_spec/.ruby-gemset +1 -0
  6. data/lib/api_spec/.ruby-version +1 -0
  7. data/lib/api_spec/Gemfile +3 -0
  8. data/lib/api_spec/Gemfile.lock +13 -0
  9. data/lib/api_spec/LICENSE.txt +20 -0
  10. data/lib/api_spec/README.md +20 -0
  11. data/lib/api_spec/Rakefile +9 -0
  12. data/lib/api_spec/lib/api_spec.rb +26 -0
  13. data/lib/api_spec/lib/api_spec/generator.rb +113 -0
  14. data/lib/api_spec/lib/api_spec/specs/basic_pages.rb +106 -0
  15. data/lib/api_spec/lib/api_spec/specs/blog_posts.rb +160 -0
  16. data/lib/api_spec/lib/api_spec/specs/blogs.rb +128 -0
  17. data/lib/api_spec/lib/api_spec/specs/calendars.rb +128 -0
  18. data/lib/api_spec/lib/api_spec/specs/campaign_data.rb +15 -0
  19. data/lib/api_spec/lib/api_spec/specs/contacts.rb +155 -0
  20. data/lib/api_spec/lib/api_spec/specs/donations.rb +76 -0
  21. data/lib/api_spec/lib/api_spec/specs/events.rb +238 -0
  22. data/lib/api_spec/lib/api_spec/specs/exports.rb +42 -0
  23. data/lib/api_spec/lib/api_spec/specs/imports.rb +43 -0
  24. data/lib/api_spec/lib/api_spec/specs/lists.rb +215 -0
  25. data/lib/api_spec/lib/api_spec/specs/memberships.rb +94 -0
  26. data/lib/api_spec/lib/api_spec/specs/page_attachments.rb +121 -0
  27. data/lib/api_spec/lib/api_spec/specs/people.rb +500 -0
  28. data/lib/api_spec/lib/api_spec/specs/people_tags.rb +63 -0
  29. data/lib/api_spec/lib/api_spec/specs/precincts.rb +89 -0
  30. data/lib/api_spec/lib/api_spec/specs/sites.rb +32 -0
  31. data/lib/api_spec/lib/api_spec/specs/survey_responses.rb +64 -0
  32. data/lib/api_spec/lib/api_spec/specs/surveys.rb +106 -0
  33. data/lib/api_spec/lib/api_spec/specs/webhooks.rb +75 -0
  34. data/lib/{nationbuilder/api_spec.json → api_spec/spec.json} +143 -5
  35. data/lib/nationbuilder/client.rb +1 -1
  36. data/nationbuilder-rb.gemspec +35 -5
  37. data/spec/nationbuilder_client_spec.rb +1 -0
  38. data/update_subtree.sh +1 -0
  39. metadata +33 -3
@@ -0,0 +1,94 @@
1
+ class ApiSpec::Spec
2
+
3
+ endpoint 'Memberships' do |memberships|
4
+
5
+ memberships.method('Index') do |method|
6
+ method.synopsis = 'Lists all memberships for a person'
7
+ method.http_method = 'GET'
8
+ method.uri = '/people/:person_id/memberships'
9
+
10
+ method.parameter('person_id') do |p|
11
+ p.required = 'Y'
12
+ p.type = 'int'
13
+ p.description = 'The person\'s ID'
14
+ end
15
+
16
+ method.parameter('__token') do |p|
17
+ p.required = 'N'
18
+ p.type = 'string'
19
+ p.description = 'pagination token'
20
+ end
21
+
22
+ method.parameter('__nonce') do |p|
23
+ p.required = 'N'
24
+ p.type = 'string'
25
+ p.description = 'pagination nonce'
26
+ end
27
+
28
+ method.parameter('limit') do |p|
29
+ p.required = 'N'
30
+ p.default = '10'
31
+ p.type = 'int'
32
+ p.description = 'maximum number of results to return'
33
+ end
34
+ end
35
+
36
+ memberships.method('Create') do |method|
37
+ method.synopsis = 'Creates a membership'
38
+ method.http_method = 'POST'
39
+ method.uri = '/people/:person_id/memberships'
40
+
41
+ method.parameter('person_id') do |p|
42
+ p.required = 'Y'
43
+ p.type = 'int'
44
+ p.description = 'The person\'s ID'
45
+ end
46
+
47
+ method.parameter('body') do |p|
48
+ p.required = 'Y'
49
+ p.default = '{}'
50
+ p.type = 'json'
51
+ p.description = 'JSON attributes for the new membership'
52
+ end
53
+ end
54
+
55
+ memberships.method('Update') do |method|
56
+ method.synopsis = 'Updates a membership'
57
+ method.http_method = 'PUT'
58
+ method.uri = '/people/:person_id/memberships'
59
+
60
+ method.parameter('person_id') do |p|
61
+ p.required = 'Y'
62
+ p.type = 'int'
63
+ p.description = 'The person\'s ID'
64
+ end
65
+
66
+ method.parameter('body') do |p|
67
+ p.required = 'Y'
68
+ p.default = '{}'
69
+ p.type = 'json'
70
+ p.description = 'JSON attributes for updating a membership'
71
+ end
72
+ end
73
+
74
+ memberships.method('Destroy') do |method|
75
+ method.synopsis = 'Removes a membership from the person'
76
+ method.http_method = 'DELETE'
77
+ method.uri = '/people/:person_id/memberships/:name'
78
+
79
+ method.parameter('person_id') do |p|
80
+ p.required = 'Y'
81
+ p.type = 'int'
82
+ p.description = 'The person\'s ID'
83
+ end
84
+
85
+ method.parameter('name') do |p|
86
+ p.required = 'Y'
87
+ p.type = 'string'
88
+ p.description = 'The name of the membership'
89
+ end
90
+ end
91
+
92
+ end
93
+
94
+ end
@@ -0,0 +1,121 @@
1
+ class ApiSpec::Spec
2
+
3
+ endpoint 'Page Attachments' do |pa|
4
+
5
+ pa.method('Index') do |method|
6
+ method.synopsis = "Returns a list of a page's file attachments"
7
+ method.http_method = "GET"
8
+ method.uri = "/sites/:site_slug/pages/:page_slug/attachments"
9
+
10
+ method.parameter('site_slug') do |p|
11
+ p.required = 'Y'
12
+ p.type = 'string'
13
+ p.description = 'The slug of the site the page lives on'
14
+ end
15
+
16
+ method.parameter('page_slug') do |p|
17
+ p.required = 'Y'
18
+ p.default = '1'
19
+ p.type = 'string'
20
+ p.description = 'The page\'s slug'
21
+ end
22
+
23
+ method.parameter('__token') do |p|
24
+ p.required = 'N'
25
+ p.type = 'string'
26
+ p.description = 'pagination token'
27
+ end
28
+
29
+ method.parameter('__nonce') do |p|
30
+ p.required = 'N'
31
+ p.type = 'string'
32
+ p.description = 'pagination nonce'
33
+ end
34
+
35
+ method.parameter('limit') do |p|
36
+ p.required = 'N'
37
+ p.default = '10'
38
+ p.type = 'int'
39
+ p.description = 'maximum number of results to return'
40
+ end
41
+ end
42
+
43
+ pa.method('Show') do |method|
44
+ method.synopsis = "Creates a new file attachment for a page"
45
+ method.http_method = "GET"
46
+ method.uri = "/sites/:site_slug/pages/:page_slug/attachments/:id"
47
+
48
+ method.parameter('site_slug') do |p|
49
+ p.required = 'Y'
50
+ p.type = 'string'
51
+ p.description = 'The slug of the site the page lives on'
52
+ end
53
+
54
+ method.parameter('page_slug') do |p|
55
+ p.required = 'Y'
56
+ p.default = '1'
57
+ p.type = 'string'
58
+ p.description = 'The page\'s slug'
59
+ end
60
+
61
+ method.parameter('id') do |p|
62
+ p.required = 'Y'
63
+ p.type = 'int'
64
+ p.description = 'The ID of the page attachment'
65
+ end
66
+ end
67
+
68
+ pa.method('Create') do |method|
69
+ method.synopsis = "Creates a new file attachment for a page"
70
+ method.http_method = "POST"
71
+ method.uri = "/sites/:site_slug/pages/:page_slug/attachments"
72
+
73
+ method.parameter('site_slug') do |p|
74
+ p.required = 'Y'
75
+ p.type = 'string'
76
+ p.description = 'The slug of the site the page lives on'
77
+ end
78
+
79
+ method.parameter('page_slug') do |p|
80
+ p.required = 'Y'
81
+ p.default = '1'
82
+ p.type = 'string'
83
+ p.description = 'The page\'s slug'
84
+ end
85
+
86
+ method.parameter('body') do |p|
87
+ p.required = 'Y'
88
+ p.default = '{}'
89
+ p.type = 'json'
90
+ p.description = 'A JSON representation of the attachment'
91
+ end
92
+ end
93
+
94
+ pa.method('Destroy') do |method|
95
+ method.synopsis = "Destroys a file attachment for a page"
96
+ method.http_method = "DELETE"
97
+ method.uri = "/sites/:site_slug/pages/:page_slug/attachments/:id"
98
+
99
+ method.parameter('site_slug') do |p|
100
+ p.required = 'Y'
101
+ p.type = 'string'
102
+ p.description = 'The slug of the site the page lives on'
103
+ end
104
+
105
+ method.parameter('page_slug') do |p|
106
+ p.required = 'Y'
107
+ p.default = '1'
108
+ p.type = 'string'
109
+ p.description = 'The page\'s slug'
110
+ end
111
+
112
+ method.parameter('id') do |p|
113
+ p.required = 'Y'
114
+ p.type = 'int'
115
+ p.description = 'The ID of the page attachment'
116
+ end
117
+ end
118
+
119
+ end
120
+
121
+ end
@@ -0,0 +1,500 @@
1
+ class ApiSpec::Spec
2
+
3
+ endpoint 'People' do |people|
4
+
5
+ people.method('Index') do |method|
6
+ method.synopsis = "Returns a list of people"
7
+ method.http_method = "GET"
8
+ method.uri = "/people"
9
+
10
+ method.parameter('__token') do |p|
11
+ p.required = 'N'
12
+ p.type = 'string'
13
+ p.description = 'pagination token'
14
+ end
15
+
16
+ method.parameter('__nonce') do |p|
17
+ p.required = 'N'
18
+ p.type = 'string'
19
+ p.description = 'pagination nonce'
20
+ end
21
+
22
+ method.parameter('limit') do |p|
23
+ p.required = 'N'
24
+ p.default = '10'
25
+ p.type = 'int'
26
+ p.description = 'maximum number of results to return'
27
+ end
28
+ end
29
+
30
+ people.method('Show') do |method|
31
+ method.synopsis = "Returns a full representation of the person"
32
+ method.http_method = "GET"
33
+ method.uri = "/people/:id"
34
+
35
+ method.parameter('id') do |p|
36
+ p.required = 'Y'
37
+ p.default = '1'
38
+ p.type = 'int'
39
+ p.description = 'the person\'s id'
40
+ end
41
+ end
42
+
43
+ people.method('Match') do |method|
44
+ method.synopsis = "Finds people that match certain attributes exactly"
45
+ method.http_method = "GET"
46
+ method.uri = "/people/match"
47
+
48
+ method.parameter("email") do |p|
49
+ p.required = 'N'
50
+ p.type = 'string'
51
+ end
52
+
53
+ method.parameter("first_name") do |p|
54
+ p.required = 'N'
55
+ p.type = 'string'
56
+ p.description = 'deprecated'
57
+ end
58
+
59
+ method.parameter("last_name") do |p|
60
+ p.required = 'N'
61
+ p.type = 'string'
62
+ p.description = 'deprecated'
63
+ end
64
+
65
+ method.parameter("phone") do |p|
66
+ p.required = 'N'
67
+ p.type = 'string'
68
+ p.description = 'deprecated'
69
+ end
70
+
71
+ method.parameter("mobile") do |p|
72
+ p.required = 'N'
73
+ p.type = 'string'
74
+ p.description = 'deprecated'
75
+ end
76
+
77
+ end
78
+
79
+ people.method('Search') do |method|
80
+ method.synopsis = "Search for people using non-unique traits"
81
+ method.http_method = "GET"
82
+ method.uri = "/people/search"
83
+
84
+ method.parameter("first_name") do |p|
85
+ p.required = 'N'
86
+ p.type = 'string'
87
+ end
88
+
89
+ method.parameter("last_name") do |p|
90
+ p.required = 'N'
91
+ p.type = 'string'
92
+ end
93
+
94
+ method.parameter("city") do |p|
95
+ p.required = 'N'
96
+ p.type = 'string'
97
+ end
98
+
99
+ method.parameter("state") do |p|
100
+ p.required = 'N'
101
+ p.type = 'string'
102
+ end
103
+
104
+ method.parameter("sex") do |p|
105
+ p.required = 'N'
106
+ p.type = 'string'
107
+ end
108
+
109
+ method.parameter("birthdate") do |p|
110
+ p.required = 'N'
111
+ p.type = 'string'
112
+ end
113
+
114
+ method.parameter("updated_since") do |p|
115
+ p.required = 'N'
116
+ p.type = 'string'
117
+ end
118
+
119
+ method.parameter("with_mobile") do |p|
120
+ p.required = 'N'
121
+ p.type = 'string'
122
+ end
123
+
124
+ method.parameter("custom_values") do |p|
125
+ p.required = 'N'
126
+ p.type = 'string'
127
+ end
128
+
129
+ method.parameter('civicrm_id') do |p|
130
+ p.required = 'N'
131
+ p.type = 'string'
132
+ end
133
+
134
+ method.parameter('county_file_id') do |p|
135
+ p.required = 'N'
136
+ p.type = 'string'
137
+ end
138
+
139
+ method.parameter('datatrust_id') do |p|
140
+ p.required = 'N'
141
+ p.type = 'string'
142
+ end
143
+
144
+ method.parameter('dw_id') do |p|
145
+ p.required = 'N'
146
+ p.type = 'string'
147
+ end
148
+
149
+ method.parameter('external_id') do |p|
150
+ p.required = 'N'
151
+ p.type = 'string'
152
+ end
153
+
154
+ method.parameter('media_market_id') do |p|
155
+ p.required = 'N'
156
+ p.type = 'string'
157
+ end
158
+
159
+ method.parameter('membership_level_id') do |p|
160
+ p.required = 'N'
161
+ p.type = 'string'
162
+ end
163
+
164
+ method.parameter('ngp_id') do |p|
165
+ p.required = 'N'
166
+ p.type = 'string'
167
+ end
168
+
169
+ method.parameter('pf_strat_id') do |p|
170
+ p.required = 'N'
171
+ p.type = 'string'
172
+ end
173
+
174
+ method.parameter('rnc_id') do |p|
175
+ p.required = 'N'
176
+ p.type = 'string'
177
+ end
178
+
179
+ method.parameter('rnc_regid') do |p|
180
+ p.required = 'N'
181
+ p.type = 'string'
182
+ end
183
+
184
+ method.parameter('salesforce_id') do |p|
185
+ p.required = 'N'
186
+ p.type = 'string'
187
+ end
188
+
189
+ method.parameter('state_file_id') do |p|
190
+ p.required = 'N'
191
+ p.type = 'string'
192
+ end
193
+
194
+ method.parameter('van_id') do |p|
195
+ p.required = 'N'
196
+ p.type = 'string'
197
+ end
198
+
199
+ method.parameter('__token') do |p|
200
+ p.required = 'N'
201
+ p.type = 'string'
202
+ p.description = 'pagination token'
203
+ end
204
+
205
+ method.parameter('__nonce') do |p|
206
+ p.required = 'N'
207
+ p.type = 'string'
208
+ p.description = 'pagination nonce'
209
+ end
210
+
211
+ method.parameter('limit') do |p|
212
+ p.required = 'N'
213
+ p.default = '10'
214
+ p.type = 'int'
215
+ p.description = 'maximum number of results to return'
216
+ end
217
+ end
218
+
219
+ people.method('Nearby') do |method|
220
+ method.synopsis = "Searches for people near a location defined by latitude and longitude"
221
+ method.http_method = "GET"
222
+ method.uri = "/people/nearby"
223
+
224
+ method.parameter('location') do |p|
225
+ p.required = 'Y'
226
+ p.default = '34.049031,-118.251399'
227
+ p.type = 'string'
228
+ p.description = 'origin of search in the format "latitude,longitude"'
229
+ end
230
+
231
+ method.parameter('distance') do |p|
232
+ p.required = 'N'
233
+ p.default = '1'
234
+ p.type = 'int'
235
+ p.description = 'radius in miles for which to include results'
236
+ end
237
+
238
+ method.parameter('__token') do |p|
239
+ p.required = 'N'
240
+ p.type = 'string'
241
+ p.description = 'pagination token'
242
+ end
243
+
244
+ method.parameter('__nonce') do |p|
245
+ p.required = 'N'
246
+ p.type = 'string'
247
+ p.description = 'pagination nonce'
248
+ end
249
+
250
+ method.parameter('limit') do |p|
251
+ p.required = 'N'
252
+ p.default = '10'
253
+ p.type = 'int'
254
+ p.description = 'maximum number of results to return'
255
+ end
256
+ end
257
+
258
+ people.method('Me') do |method|
259
+ method.synopsis = "Returns the access token's resource owner's representation"
260
+ method.http_method = "GET"
261
+ method.uri = "/people/me"
262
+ end
263
+
264
+ people.method('Register') do |method|
265
+ method.synopsis = "Starts user registration person for the given person"
266
+ method.http_method = "GET"
267
+ method.uri = "/people/:id/register"
268
+
269
+ method.parameter('id') do |p|
270
+ p.required = 'Y'
271
+ p.type = 'int'
272
+ p.description = "The person's ID"
273
+ end
274
+ end
275
+
276
+ people.method('Taggings') do |method|
277
+ method.synopsis = "Returns all taggings for a given person"
278
+ method.http_method = "GET"
279
+ method.uri = "/people/:id/taggings"
280
+
281
+ method.parameter('id') do |p|
282
+ p.required = 'Y'
283
+ p.type = 'int'
284
+ p.description = 'the ID of the person'
285
+ end
286
+ end
287
+
288
+ people.method('Tag Person') do |method|
289
+ method.synopsis = "Tags a person"
290
+ method.http_method = "PUT"
291
+ method.uri = "/people/:id/taggings"
292
+
293
+ method.parameter('id') do |p|
294
+ p.required = 'Y'
295
+ p.type = 'int'
296
+ p.description = 'the ID of the person'
297
+ end
298
+
299
+ method.parameter('body') do |p|
300
+ p.required = 'Y'
301
+ p.type = 'json'
302
+ p.description = 'JSON with tagging information'
303
+ end
304
+ end
305
+
306
+ people.method('Tag Removal') do |method|
307
+ method.synopsis = "Removes a tag from a person"
308
+ method.http_method = "DELETE"
309
+ method.uri = "/people/:id/taggings/:tag"
310
+
311
+ method.parameter('id') do |p|
312
+ p.required = 'Y'
313
+ p.type = 'int'
314
+ p.description = 'the ID of the person'
315
+ end
316
+
317
+ method.parameter('tag') do |p|
318
+ p.required = 'Y'
319
+ p.type = 'string'
320
+ p.description = 'the name of the tag'
321
+ end
322
+
323
+ end
324
+
325
+ people.method('Bulk Tag Removal') do |method|
326
+ method.synopsis = "Removes tags from a person"
327
+ method.http_method = "DELETE"
328
+ method.uri = "/people/:id/taggings"
329
+
330
+ method.parameter('id') do |p|
331
+ p.required = 'Y'
332
+ p.type = 'int'
333
+ p.description = 'the ID of the person'
334
+ end
335
+
336
+ method.parameter('body') do |p|
337
+ p.required = 'Y'
338
+ p.type = 'json'
339
+ p.description = 'the tagging resource'
340
+ end
341
+ end
342
+
343
+ people.method('Political Capital') do |method|
344
+ method.synopsis = "Returns a paginated list of a person's capitals"
345
+ method.http_method = "GET"
346
+ method.uri = "/people/:id/capitals"
347
+
348
+ method.parameter('id') do |p|
349
+ p.required = 'Y'
350
+ p.type = 'int'
351
+ p.description = "the ID of the person"
352
+ end
353
+
354
+ method.parameter('__token') do |p|
355
+ p.required = 'N'
356
+ p.type = 'string'
357
+ p.description = 'pagination token'
358
+ end
359
+
360
+ method.parameter('__nonce') do |p|
361
+ p.required = 'N'
362
+ p.type = 'string'
363
+ p.description = 'pagination nonce'
364
+ end
365
+
366
+ method.parameter('limit') do |p|
367
+ p.required = 'N'
368
+ p.default = '10'
369
+ p.type = 'int'
370
+ p.description = 'maximum number of results to return'
371
+ end
372
+ end
373
+
374
+ people.method('Political Capital Create') do |method|
375
+ method.synopsis = "Creates capital for the given person"
376
+ method.http_method = "POST"
377
+ method.uri = "/people/:id/capitals"
378
+
379
+ method.parameter('id') do |p|
380
+ p.required = 'Y'
381
+ p.type = 'int'
382
+ p.description = "the ID of the person"
383
+ end
384
+
385
+ method.parameter('body') do |p|
386
+ p.required = 'Y'
387
+ p.type = 'json'
388
+ p.description = 'JSON representation of the capital to create'
389
+ end
390
+ end
391
+
392
+ people.method('Political Capital Destroy') do |method|
393
+ method.synopsis = "Destroys capital for a person"
394
+ method.http_method = "DELETE"
395
+ method.uri = "/people/:person_id/capitals/:capital_id"
396
+
397
+ method.parameter('person_id') do |p|
398
+ p.required = 'Y'
399
+ p.type = 'int'
400
+ p.description = 'the ID of the person'
401
+ end
402
+
403
+ method.parameter('capital_id') do |p|
404
+ p.required = 'Y'
405
+ p.type = 'int'
406
+ p.description = 'the ID of the capital to destroy'
407
+ end
408
+ end
409
+
410
+ people.method('Create') do |method|
411
+ method.synopsis = "Creates a person with the provided data"
412
+ method.http_method = "POST"
413
+ method.uri = "/people"
414
+
415
+ method.parameter('body') do |p|
416
+ p.required = 'Y'
417
+ p.default = '{}'
418
+ p.type = 'json'
419
+ p.description = 'JSON representation of the person to create'
420
+ end
421
+ end
422
+
423
+ people.method('Update') do |method|
424
+ method.synopsis = "Updates a person with the provided data"
425
+ method.http_method = "PUT"
426
+ method.uri = "/people/:id"
427
+
428
+ method.parameter('id') do |p|
429
+ p.required = 'Y'
430
+ p.type = 'int'
431
+ p.description = "The person's ID"
432
+ end
433
+
434
+ method.parameter('body') do |p|
435
+ p.required = 'Y'
436
+ p.default = '{}'
437
+ p.type = 'json'
438
+ p.description = 'JSON attributes for updating the person'
439
+ end
440
+ end
441
+
442
+ people.method('Push') do |method|
443
+ method.synopsis = "Updates a matched person or creates a new one if the person doesn't exist"
444
+ method.http_method = "PUT"
445
+ method.uri = "/people/push"
446
+
447
+ method.parameter('body') do |p|
448
+ p.required = 'Y'
449
+ p.default = '{}'
450
+ p.type = 'json'
451
+ p.description = 'JSON attributes for updating/matching the person'
452
+ end
453
+ end
454
+
455
+ people.method('Add') do |method|
456
+ method.synopsis = "Updates a matched person (without overriding data) or creates a new one if the person doesn't exist"
457
+ method.http_method = "PUT"
458
+ method.uri = "/people/add"
459
+
460
+ method.parameter('body') do |p|
461
+ p.required = 'Y'
462
+ p.default = '{}'
463
+ p.type = 'json'
464
+ p.description = 'JSON attributes for updating/matching the person'
465
+ end
466
+ end
467
+
468
+ people.method('Destroy') do |method|
469
+ method.synopsis = "Removes the person with the matching ID"
470
+ method.http_method = "DELETE"
471
+ method.uri = "/people/:id"
472
+
473
+ method.parameter('id') do |p|
474
+ p.required = 'Y'
475
+ p.type = 'int'
476
+ p.description = "The person's ID"
477
+ end
478
+ end
479
+
480
+ people.method('Private Note Create') do |method|
481
+ method.synopsis = "Creates a private note for the given person"
482
+ method.http_method = "POST"
483
+ method.uri = "/people/:id/notes"
484
+
485
+ method.parameter('id') do |p|
486
+ p.required = 'Y'
487
+ p.type = 'int'
488
+ p.description = "the ID of the person"
489
+ end
490
+
491
+ method.parameter('body') do |p|
492
+ p.required = 'Y'
493
+ p.type = 'json'
494
+ p.description = 'JSON representation of the note to create'
495
+ end
496
+ end
497
+
498
+ end
499
+
500
+ end