summaryrefslogtreecommitdiff
path: root/src/services/meal
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/meal')
-rw-r--r--src/services/meal/hooks/index.js31
-rw-r--r--src/services/meal/index.js29
-rw-r--r--src/services/meal/meal-model.js38
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;
+};