1+ import { Meteor } from 'meteor/meteor' ;
12import { Restivus } from 'meteor/nimble:restivus' ;
23
34const ApiV1 = new Restivus ( {
@@ -6,7 +7,7 @@ const ApiV1 = new Restivus({
67 defaultHeaders : {
78 'Content-Type' : 'application/json' ,
89 } ,
9- useDefaultAuth : false ,
10+ useDefaultAuth : true ,
1011 prettyJson : true ,
1112 enableCors : true ,
1213} ) ;
@@ -43,6 +44,52 @@ ApiV1.swagger = {
4344 } ,
4445} ;
4546
47+ // Enable user endpoints if authentication is enabled
48+ if ( ApiV1 . _config . useDefaultAuth ) {
49+ // Generates: POST on /api/v1/users and GET, DELETE /api/v1/users/:id for
50+ // Meteor.users collection
51+ ApiV1 . addCollection ( Meteor . users , {
52+ excludedEndpoints : [ 'getAll' , 'put' ] ,
53+ routeOptions : {
54+ authRequired : true ,
55+ } ,
56+ endpoints : {
57+ get : {
58+ swagger : {
59+ description : 'Returns user with given ID.' ,
60+ responses : {
61+ 200 : {
62+ description : 'One user.' ,
63+ } ,
64+ } ,
65+ } ,
66+ } ,
67+ post : {
68+ authRequired : false ,
69+ swagger : {
70+ description : 'Add user.' ,
71+ responses : {
72+ 200 : {
73+ description : 'Return user that was added.' ,
74+ } ,
75+ } ,
76+ } ,
77+ } ,
78+ delete : {
79+ roleRequired : 'admin' ,
80+ swagger : {
81+ description : 'Delete user.' ,
82+ responses : {
83+ 200 : {
84+ description : 'Successful delete.' ,
85+ } ,
86+ } ,
87+ } ,
88+ } ,
89+ } ,
90+ } ) ;
91+ }
92+
4693// Generate Swagger to route /rest-api/v1/swagger.json
4794ApiV1 . addSwagger ( 'swagger.json' ) ;
4895
0 commit comments