Modified models to support resource visibility. Added migration

This commit is contained in:
Paweł Malak 2021-11-08 23:39:42 +01:00
parent 08afaece2e
commit ee9aefa4fa
4 changed files with 114 additions and 60 deletions

View 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,
};

View File

@ -1,31 +1,40 @@
const { DataTypes } = require('sequelize');
const { sequelize } = require('../db');
const App = sequelize.define('App', {
name: {
type: DataTypes.STRING,
allowNull: false
const App = sequelize.define(
'App',
{
name: {
type: DataTypes.STRING,
allowNull: false,
},
url: {
type: DataTypes.STRING,
allowNull: false,
},
icon: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: 'cancel',
},
isPinned: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
orderId: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: null,
},
isPublic: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: 0,
},
},
url: {
type: DataTypes.STRING,
allowNull: false
},
icon: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: 'cancel'
},
isPinned: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
orderId: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: null
{
tableName: 'apps',
}
}, {
tableName: 'apps'
});
);
module.exports = App;
module.exports = App;

View File

@ -1,25 +1,34 @@
const { DataTypes } = require('sequelize');
const { sequelize } = require('../db');
const Bookmark = sequelize.define('Bookmark', {
name: {
type: DataTypes.STRING,
allowNull: false
const Bookmark = sequelize.define(
'Bookmark',
{
name: {
type: DataTypes.STRING,
allowNull: false,
},
url: {
type: DataTypes.STRING,
allowNull: false,
},
categoryId: {
type: DataTypes.INTEGER,
allowNull: false,
},
icon: {
type: DataTypes.STRING,
defaultValue: '',
},
isPublic: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: 0,
},
},
url: {
type: DataTypes.STRING,
allowNull: false
},
categoryId: {
type: DataTypes.INTEGER,
allowNull: false
},
icon: {
type: DataTypes.STRING,
defaultValue: ''
{
tableName: 'bookmarks',
}
}, {
tableName: 'bookmarks'
});
);
module.exports = Bookmark;
module.exports = Bookmark;

View File

@ -1,22 +1,31 @@
const { DataTypes } = require('sequelize');
const { sequelize } = require('../db');
const Category = sequelize.define('Category', {
name: {
type: DataTypes.STRING,
allowNull: false
const Category = sequelize.define(
'Category',
{
name: {
type: DataTypes.STRING,
allowNull: false,
},
isPinned: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
orderId: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: null,
},
isPublic: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: 0,
},
},
isPinned: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
orderId: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: null
{
tableName: 'categories',
}
}, {
tableName: 'categories'
});
);
module.exports = Category;
module.exports = Category;