diff --git a/generators/app/templates/.gitignore b/generators/app/templates/.gitignore new file mode 100644 index 0000000..40b878d --- /dev/null +++ b/generators/app/templates/.gitignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/generators/app/templates/.meteor/.finished-upgraders b/generators/app/templates/.meteor/.finished-upgraders new file mode 100644 index 0000000..aa60704 --- /dev/null +++ b/generators/app/templates/.meteor/.finished-upgraders @@ -0,0 +1,15 @@ +# This file contains information which helps Meteor properly upgrade your +# app when you run 'meteor update'. You should check it into version control +# with your project. + +notices-for-0.9.0 +notices-for-0.9.1 +0.9.4-platform-file +notices-for-facebook-graph-api-2 +1.2.0-standard-minifiers-package +1.2.0-meteor-platform-split +1.2.0-cordova-changes +1.2.0-breaking-changes +1.3.0-split-minifiers-package +1.4.0-remove-old-dev-bundle-link +1.4.1-add-shell-server-package diff --git a/generators/app/templates/.meteor/.gitignore b/generators/app/templates/.meteor/.gitignore new file mode 100644 index 0000000..4083037 --- /dev/null +++ b/generators/app/templates/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/generators/app/templates/.meteor/.id b/generators/app/templates/.meteor/.id new file mode 100644 index 0000000..ef09a0c --- /dev/null +++ b/generators/app/templates/.meteor/.id @@ -0,0 +1,7 @@ +# This file contains a token that is unique to your project. +# Check it into your repository along with the rest of this directory. +# It can be used for purposes such as: +# - ensuring you don't accidentally deploy one app on top of another +# - providing package authors with aggregated statistics + +118uo1u8wjvlhfrieo5 diff --git a/generators/app/templates/.meteor/packages b/generators/app/templates/.meteor/packages new file mode 100644 index 0000000..099496b --- /dev/null +++ b/generators/app/templates/.meteor/packages @@ -0,0 +1,9 @@ +# Meteor packages used by this project, one per line. +# Check this file (and the other files in this directory) into your repository. +# +# 'meteor add' and 'meteor remove' will edit this file for you, +# but you can also edit it by hand. + +ecmascript +ajkwak:restivus +ajkwak:restivus-swagger diff --git a/generators/app/templates/.meteor/platforms b/generators/app/templates/.meteor/platforms new file mode 100644 index 0000000..8a3a35f --- /dev/null +++ b/generators/app/templates/.meteor/platforms @@ -0,0 +1,2 @@ +browser +server diff --git a/generators/app/templates/.meteor/release b/generators/app/templates/.meteor/release new file mode 100644 index 0000000..b7694ea --- /dev/null +++ b/generators/app/templates/.meteor/release @@ -0,0 +1 @@ +METEOR@1.4.2.6 diff --git a/generators/app/templates/dummyfile.txt b/generators/app/templates/dummyfile.txt deleted file mode 100644 index e69de29..0000000 diff --git a/generators/app/templates/package.json b/generators/app/templates/package.json new file mode 100644 index 0000000..8caad3d --- /dev/null +++ b/generators/app/templates/package.json @@ -0,0 +1,12 @@ +{ + "name": "<%= appName %>", + "private": true, + "scripts": { + "start": "meteor run" + }, + "dependencies": { + "babel-runtime": "^6.22.0", + "bcrypt": "^1.0.2", + "meteor-node-stubs": "~0.2.0" + } +} diff --git a/generators/app/templates/server/api.js b/generators/app/templates/server/api.js new file mode 100644 index 0000000..82e7479 --- /dev/null +++ b/generators/app/templates/server/api.js @@ -0,0 +1,29 @@ +import {Restivus} from 'meteor/ajkwak:restivus'; + +const Api = new Restivus({ + apiPath: 'api', + version: 'v1', + defaultHeaders: { + 'Content-Type': 'application/json' + }, + useDefaultAuth: true, + prettyJson: true, + enableCors: true +}); + +// Add Restivus Swagger configuration +// - meta, tags, params, definitions +Api.swagger = { + meta: { + swagger: '2.0', + info: { + version: '<%= version %>', + title: '<%= title %>' + } + } +}; + +// Generate Swagger to route /api/v1/swagger.json +Api.addSwagger('swagger.json'); + +export default Api; diff --git a/generators/app/templates/server/users.js b/generators/app/templates/server/users.js new file mode 100644 index 0000000..5afea81 --- /dev/null +++ b/generators/app/templates/server/users.js @@ -0,0 +1,48 @@ +import {Meteor} from 'meteor/meteor'; +import Api from '/server/api'; + +// Enable user endpoints if authentication is enabled +if (Api._config.useDefaultAuth) { + // Generates: POST on /api/v1/users and GET, DELETE /api/v1/users/:id for + // Meteor.users collection + Api.addCollection(Meteor.users, { + excludedEndpoints: ['getAll', 'put'], + routeOptions: { + authRequired: true + }, + endpoints: { + get: { + swagger: { + description: 'Returns user with given ID.', + responses: { + 200: { + description: 'One user.' + } + } + } + }, + post: { + authRequired: false, + swagger: { + description: 'Add user.', + responses: { + 200: { + description: 'Return user that was added.' + } + } + } + }, + delete: { + roleRequired: 'admin', + swagger: { + description: 'Delete user.', + responses: { + 200: { + description: 'Successful delete.' + } + } + } + } + } + }); +}