diff options
Diffstat (limited to 'src/services/meal')
| -rw-r--r-- | src/services/meal/hooks/index.js | 31 | ||||
| -rw-r--r-- | src/services/meal/index.js | 29 | ||||
| -rw-r--r-- | src/services/meal/meal-model.js | 38 |
3 files changed, 98 insertions, 0 deletions
diff --git a/src/services/meal/hooks/index.js b/src/services/meal/hooks/index.js new file mode 100644 index 0000000..2e2795a --- /dev/null +++ b/src/services/meal/hooks/index.js @@ -0,0 +1,31 @@ +'use strict'; + +const globalHooks = require('../../../hooks'); +const hooks = require('feathers-hooks'); +const auth = require('feathers-authentication').hooks; + +exports.before = { + all: [ + auth.verifyToken(), + auth.populateUser(), + auth.restrictToAuthenticated(), + globalHooks.restrictToOwnersOrAdmins(), + ], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] +}; + +exports.after = { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] +}; + diff --git a/src/services/meal/index.js b/src/services/meal/index.js new file mode 100644 index 0000000..88ca1bd --- /dev/null +++ b/src/services/meal/index.js @@ -0,0 +1,29 @@ +'use strict'; + +const service = require('feathers-sequelize'); +const meal = require('./meal-model'); +const hooks = require('./hooks'); + +module.exports = function(){ + const app = this; + + const options = { + Model: meal(app.get('sequelize')), + paginate: { + default: 5, + max: 25 + } + }; + + // Initialize our service with any options it requires + app.use('/meals', service(options)); + + // Get our initialize service to that we can bind hooks + const mealService = app.service('/meals'); + + // Set up our before hooks + mealService.before(hooks.before); + + // Set up our after hooks + mealService.after(hooks.after); +}; diff --git a/src/services/meal/meal-model.js b/src/services/meal/meal-model.js new file mode 100644 index 0000000..d15b244 --- /dev/null +++ b/src/services/meal/meal-model.js @@ -0,0 +1,38 @@ +'use strict'; + +// meal-model.js - A sequelize model +// +// See http://docs.sequelizejs.com/en/latest/docs/models-definition/ +// for more of what you can do here. + +const Sequelize = require('sequelize'); + +module.exports = function(sequelize) { + const meal = sequelize.define('meals', { + name: { + type: Sequelize.STRING, + allowNull: false + }, + date: { + type: Sequelize.DATE, + allowNull: false + }, + calories: { + type: Sequelize.INTEGER, + allowNull: false + }, + user_id: { + type: Sequelize.INTEGER, + references: { + model: sequelize.model('users'), + key: 'id', + } + }, + }, { + freezeTableName: true + }); + + meal.sync(); + + return meal; +}; |
