From eadca3bae726ae82cf5dc302cd439a96eecf8dcd Mon Sep 17 00:00:00 2001 From: Carson Cai Date: Thu, 21 Feb 2019 17:29:22 +0800 Subject: [PATCH] base color and icon --- app/controllers/bases.js | 2 +- app/models/bases.js | 8 ++++++++ app/queries/bases.js | 6 +++--- app/resolvers/bases.js | 4 +++- .../20190221082500-add-icon-color-to-bases.js | 13 +++++++++++++ 5 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 migrations/20190221082500-add-icon-color-to-bases.js diff --git a/app/controllers/bases.js b/app/controllers/bases.js index 999c393..65d2ee2 100644 --- a/app/controllers/bases.js +++ b/app/controllers/bases.js @@ -12,7 +12,7 @@ const getOne = async id => { module.exports = { async create(params) { - const base = await bseQueries.create(params.name); + const base = await bseQueries.create(params); const table = await tblController.createNewTableSet({ baseId: base.id, name: 'Table 1', diff --git a/app/models/bases.js b/app/models/bases.js index 6e50a62..ba93956 100644 --- a/app/models/bases.js +++ b/app/models/bases.js @@ -10,6 +10,14 @@ module.exports = (sequelize, DataTypes) => { allowNull: false, type: DataTypes.STRING, }, + icon: { + allowNull: false, + type: DataTypes.STRING, + }, + color: { + allowNull: false, + type: DataTypes.STRING, + }, }); Bases.associate = function(models) { Bases.hasMany(models.Tables, { diff --git a/app/queries/bases.js b/app/queries/bases.js index d50577c..196c727 100644 --- a/app/queries/bases.js +++ b/app/queries/bases.js @@ -6,13 +6,13 @@ const { } = require('../models'); module.exports = { - create(name) { - return Bases.create({ name }); + create({ name, icon, color }) { + return Bases.create({ name, icon, color }); }, getAll() { return Bases.findAll({ - attributes: ['id', 'name'], + attributes: ['id', 'name', 'icon', 'color'], include: [ { model: TablePositions, diff --git a/app/resolvers/bases.js b/app/resolvers/bases.js index f584995..c102ebd 100644 --- a/app/resolvers/bases.js +++ b/app/resolvers/bases.js @@ -7,6 +7,8 @@ const adaptBases = bases => bases.map(base => ({ id: base.id, name: base.name, + icon: base.icon, + color: base.color, primaryTableId: base.tablePositions[0] ? base.tablePositions[0].siblingId : null, @@ -15,7 +17,7 @@ const adaptBases = bases => module.exports = { async create(ctx) { const params = ctx.request.body; - checkKeyExists(params, 'name'); + checkKeyExists(params, 'name', 'icon', 'color'); const result = await sequelize.transaction(() => bseController.create(params), ); diff --git a/migrations/20190221082500-add-icon-color-to-bases.js b/migrations/20190221082500-add-icon-color-to-bases.js new file mode 100644 index 0000000..97520eb --- /dev/null +++ b/migrations/20190221082500-add-icon-color-to-bases.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = { + up: async (queryInterface, Sequelize) => { + await queryInterface.addColumn('Bases', 'icon', Sequelize.STRING); + return queryInterface.addColumn('Bases', 'color', Sequelize.STRING); + }, + + down: async (queryInterface, Sequelize) => { + await queryInterface.remove('Bases', 'icon', Sequelize.STRING); + return queryInterface.remove('Bases', 'color', Sequelize.STRING); + }, +};