Add a simple DB-backed users service

Fixes #5
This commit is contained in:
R. Tyler Croy 2018-09-11 16:31:11 -07:00
parent 5260c44037
commit ebd9bbdb1c
No known key found for this signature in database
GPG Key ID: 1426C7DC3F51E16F
3 changed files with 55 additions and 3 deletions

View File

@ -0,0 +1,32 @@
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('users', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
githubId: {
allowNull: false,
index: true,
type: Sequelize.INTEGER
},
github: {
type: Sequelize.JSON
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('users');
}
};

12
src/models/user.ts Normal file
View File

@ -0,0 +1,12 @@
'use strict';
export default (sequelize, DataTypes) => {
const user = sequelize.define('users', {
github: DataTypes.JSON,
githubId: DataTypes.INTEGER,
}, {});
user.associate = function(models) {
// associations can be defined here
};
return user;
};

View File

@ -1,7 +1,14 @@
/**
* This service is a simple little users service to provide DB-backed
* persistence to our authentication provider
*/
import authentication from '@feathersjs/authentication';
import { HooksObject } from '@feathersjs/feathers';
import memory from 'feathers-memory';
import service from 'feathers-sequelize';
import { DataTypes } from 'sequelize';
import db from '../models';
import User from '../models/user';
export const usersHooks : HooksObject = {
before: {
@ -16,6 +23,7 @@ export const usersHooks : HooksObject = {
};
export default (app) => {
app.use('/users', memory());
const Model : any = User(db.sequelize, db.sequelize.Sequelize);
app.use('/users', service({ Model }));
app.service('users').hooks(usersHooks);
}