Modified models to support resource visibility. Added migration
This commit is contained in:
parent
08afaece2e
commit
ee9aefa4fa
4 changed files with 114 additions and 60 deletions
27
db/migrations/02_resource-access.js
Normal file
27
db/migrations/02_resource-access.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
const { INTEGER } = DataTypes;
|
||||
|
||||
const tables = ['categories', 'bookmarks', 'apps'];
|
||||
|
||||
const up = async (query) => {
|
||||
const template = {
|
||||
type: INTEGER,
|
||||
allowNull: true,
|
||||
defaultValue: 0,
|
||||
};
|
||||
|
||||
for await (let table of tables) {
|
||||
await query.addColumn(table, 'isPublic', template);
|
||||
}
|
||||
};
|
||||
|
||||
const down = async (query) => {
|
||||
for await (let table of tables) {
|
||||
await query.removeColumn(table, 'isPublic');
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
up,
|
||||
down,
|
||||
};
|
|
@ -1,31 +1,40 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
const { sequelize } = require('../db');
|
||||
|
||||
const App = sequelize.define('App', {
|
||||
const App = sequelize.define(
|
||||
'App',
|
||||
{
|
||||
name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
allowNull: false,
|
||||
},
|
||||
url: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
allowNull: false,
|
||||
},
|
||||
icon: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
defaultValue: 'cancel'
|
||||
defaultValue: 'cancel',
|
||||
},
|
||||
isPinned: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
},
|
||||
orderId: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true,
|
||||
defaultValue: null
|
||||
defaultValue: null,
|
||||
},
|
||||
isPublic: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true,
|
||||
defaultValue: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
tableName: 'apps',
|
||||
}
|
||||
}, {
|
||||
tableName: 'apps'
|
||||
});
|
||||
);
|
||||
|
||||
module.exports = App;
|
|
@ -1,25 +1,34 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
const { sequelize } = require('../db');
|
||||
|
||||
const Bookmark = sequelize.define('Bookmark', {
|
||||
const Bookmark = sequelize.define(
|
||||
'Bookmark',
|
||||
{
|
||||
name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
allowNull: false,
|
||||
},
|
||||
url: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
allowNull: false,
|
||||
},
|
||||
categoryId: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false
|
||||
allowNull: false,
|
||||
},
|
||||
icon: {
|
||||
type: DataTypes.STRING,
|
||||
defaultValue: ''
|
||||
defaultValue: '',
|
||||
},
|
||||
isPublic: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true,
|
||||
defaultValue: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
tableName: 'bookmarks',
|
||||
}
|
||||
}, {
|
||||
tableName: 'bookmarks'
|
||||
});
|
||||
);
|
||||
|
||||
module.exports = Bookmark;
|
|
@ -1,22 +1,31 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
const { sequelize } = require('../db');
|
||||
|
||||
const Category = sequelize.define('Category', {
|
||||
const Category = sequelize.define(
|
||||
'Category',
|
||||
{
|
||||
name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
allowNull: false,
|
||||
},
|
||||
isPinned: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
},
|
||||
orderId: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true,
|
||||
defaultValue: null
|
||||
defaultValue: null,
|
||||
},
|
||||
isPublic: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true,
|
||||
defaultValue: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
tableName: 'categories',
|
||||
}
|
||||
}, {
|
||||
tableName: 'categories'
|
||||
});
|
||||
);
|
||||
|
||||
module.exports = Category;
|
Loading…
Reference in a new issue