summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorUdo Walter2018-09-17 20:25:13 +0200
committerUdo Walter2018-09-17 20:25:13 +0200
commit2f4ec682bfd88c651451d32f292e3f172daa4f11 (patch)
treedb4d2ebeaf7eac60f1162a06666deac04fc6eab9 /server
parentUpdate npm packages (diff)
downloadbas-2f4ec682bfd88c651451d32f292e3f172daa4f11.tar.gz
bas-2f4ec682bfd88c651451d32f292e3f172daa4f11.tar.xz
bas-2f4ec682bfd88c651451d32f292e3f172daa4f11.zip
add ipxe entry and config database migrations and models
Diffstat (limited to 'server')
-rw-r--r--server/migrations/20180917132233-create-config.js31
-rw-r--r--server/migrations/20180917132333-create-entry.js22
-rw-r--r--server/migrations/20180917202533-create-config_x_entry.js39
-rw-r--r--server/models/config.js27
-rw-r--r--server/models/entry.js16
-rw-r--r--server/package-lock.json2
6 files changed, 136 insertions, 1 deletions
diff --git a/server/migrations/20180917132233-create-config.js b/server/migrations/20180917132233-create-config.js
new file mode 100644
index 0000000..fe46f62
--- /dev/null
+++ b/server/migrations/20180917132233-create-config.js
@@ -0,0 +1,31 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('configs', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER
+ },
+ name: {
+ type: Sequelize.STRING
+ },
+ description: {
+ type: Sequelize.STRING(2048)
+ },
+ defaultEntry: {
+ type: Sequelize.INTEGER
+ },
+ timeout: {
+ type: Sequelize.INTEGER
+ },
+ script: {
+ type: Sequelize.STRING(4096)
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('configs')
+ }
+}
diff --git a/server/migrations/20180917132333-create-entry.js b/server/migrations/20180917132333-create-entry.js
new file mode 100644
index 0000000..20ed4c3
--- /dev/null
+++ b/server/migrations/20180917132333-create-entry.js
@@ -0,0 +1,22 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('entries', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER
+ },
+ name: {
+ type: Sequelize.STRING
+ },
+ script: {
+ type: Sequelize.STRING(4096)
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('entries')
+ }
+}
diff --git a/server/migrations/20180917202533-create-config_x_entry.js b/server/migrations/20180917202533-create-config_x_entry.js
new file mode 100644
index 0000000..4e32ea9
--- /dev/null
+++ b/server/migrations/20180917202533-create-config_x_entry.js
@@ -0,0 +1,39 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('config_x_entry', {
+ groupId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: 'cascade',
+ references: {
+ model: 'configs',
+ key: 'id'
+ }
+ },
+ clientId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: 'cascade',
+ references: {
+ model: 'entries',
+ key: 'id'
+ }
+ },
+ sortValue: {
+ type: Sequelize.INTEGER
+ },
+ customName: {
+ type: Sequelize.STRING
+ },
+ keyBind: {
+ type: Sequelize.STRING
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('config_x_entry')
+ }
+}
diff --git a/server/models/config.js b/server/models/config.js
new file mode 100644
index 0000000..11661fd
--- /dev/null
+++ b/server/models/config.js
@@ -0,0 +1,27 @@
+'use strict'
+module.exports = (sequelize, DataTypes) => {
+ var config = sequelize.define('config', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: DataTypes.INTEGER
+ },
+ name: DataTypes.STRING,
+ description: DataTypes.STRING(2048),
+ defaultEntry: DataTypes.INTEGER,
+ timeout: DataTypes.INTEGER,
+ script: DataTypes.STRING(4096)
+ }, {
+ timestamps: false
+ })
+ config.associate = function (models) {
+ var ConfigXEntry = sequelize.define('config_x_entry', {
+ sortValue: DataTypes.INTEGER,
+ customName: DataTypes.STRING,
+ keyBind: DataTypes.STRING
+ }, { timestamps: false, freezeTableName: true })
+ config.belongsToMany(models.entry, { as: 'entries', through: ConfigXEntry, foreignKey: 'configId', otherKey: 'entryId' })
+ }
+ return config
+}
diff --git a/server/models/entry.js b/server/models/entry.js
new file mode 100644
index 0000000..94d6a01
--- /dev/null
+++ b/server/models/entry.js
@@ -0,0 +1,16 @@
+'use strict'
+module.exports = (sequelize, DataTypes) => {
+ var entry = sequelize.define('entry', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: DataTypes.INTEGER
+ },
+ name: DataTypes.STRING,
+ script: DataTypes.STRING(4096)
+ }, {
+ timestamps: false
+ })
+ return entry
+}
diff --git a/server/package-lock.json b/server/package-lock.json
index 4f04285..41aee6d 100644
--- a/server/package-lock.json
+++ b/server/package-lock.json
@@ -3339,7 +3339,7 @@
},
"wrap-ansi": {
"version": "2.1.0",
- "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"requires": {
"string-width": "^1.0.1",