From 4f96a8f2184e9ff0ee4863ed7fd8d92da30254d9 Mon Sep 17 00:00:00 2001 From: yoution Date: Thu, 15 Jul 2021 09:29:51 +0800 Subject: [PATCH] fix: taas-app issue #364 --- data/demo-data.json | 8 +++++++- docs/swagger.yaml | 14 ++++++++++---- src/common/helper.js | 3 +++ src/models/Role.js | 21 +++++++++++++++------ src/services/RoleService.js | 9 ++++++--- src/services/TeamService.js | 2 +- 6 files changed, 42 insertions(+), 15 deletions(-) diff --git a/data/demo-data.json b/data/demo-data.json index aad3fbe7..9d939c4c 100644 --- a/data/demo-data.json +++ b/data/demo-data.json @@ -7732,6 +7732,9 @@ "global": 50, "offShore": 10, "inCountry": 20, + "niche": 50, + "rate20Niche": 20, + "rate30Niche": 10, "rate20Global": 20, "rate30Global": 20, "rate20OffShore": 35, @@ -7743,6 +7746,9 @@ "global": 25, "offShore": 5, "inCountry": 15, + "niche": 50, + "rate20Niche": 20, + "rate30Niche": 10, "rate20Global": 20, "rate30Global": 20, "rate20OffShore": 35, @@ -7762,4 +7768,4 @@ "updatedAt": "2021-05-27T21:43:09.342Z" } ] -} \ No newline at end of file +} diff --git a/docs/swagger.yaml b/docs/swagger.yaml index b7705889..8156b661 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -5555,12 +5555,11 @@ components: example: 300 description: "The time to interview." RoleRates: - required: - - global - - inCountry - - offShore type: object properties: + niche: + type: integer + example: 10 global: type: integer example: 10 @@ -5570,6 +5569,9 @@ components: offShore: type: integer example: 30 + rate30Niche: + type: integer + example: 10 rate30Global: type: integer example: 10 @@ -5579,6 +5581,9 @@ components: rate30OffShore: type: integer example: 30 + rate20Niche: + type: integer + example: 10 rate20Global: type: integer example: 10 @@ -5772,3 +5777,4 @@ components: properties: message: type: string + diff --git a/src/common/helper.js b/src/common/helper.js index 851f6907..0a8ffac5 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -249,6 +249,9 @@ esIndexPropertyMapping[config.get('esConfig.ES_INDEX_ROLE')] = { global: { type: 'integer' }, inCountry: { type: 'integer' }, offShore: { type: 'integer' }, + niche: { type: 'integer' }, + rate20niche: { type: 'integer' }, + rate30niche: { type: 'integer' }, rate30Global: { type: 'integer' }, rate30InCountry: { type: 'integer' }, rate30OffShore: { type: 'integer' }, diff --git a/src/models/Role.js b/src/models/Role.js index ab8b4670..587fec38 100644 --- a/src/models/Role.js +++ b/src/models/Role.js @@ -55,18 +55,27 @@ module.exports = (sequelize) => { type: Sequelize.ARRAY({ type: Sequelize.JSONB({ global: { - type: Sequelize.SMALLINT, - allowNull: false + type: Sequelize.SMALLINT }, inCountry: { field: 'in_country', - type: Sequelize.SMALLINT, - allowNull: false + type: Sequelize.SMALLINT }, offShore: { field: 'off_shore', - type: Sequelize.SMALLINT, - allowNull: false + type: Sequelize.SMALLINT + }, + niche: { + field: 'niche', + type: Sequelize.SMALLINT + }, + rate20Niche: { + field: 'rate20_niche', + type: Sequelize.SMALLINT + }, + rate30Niche: { + field: 'rate30_niche', + type: Sequelize.SMALLINT }, rate30Global: { field: 'rate30_global', diff --git a/src/services/RoleService.js b/src/services/RoleService.js index 765d0f5c..d3b2a908 100644 --- a/src/services/RoleService.js +++ b/src/services/RoleService.js @@ -131,12 +131,15 @@ createRole.schema = Joi.object().keys({ description: Joi.string().max(1000), listOfSkills: Joi.array().items(Joi.string().max(50).required()), rates: Joi.array().items(Joi.object().keys({ - global: Joi.smallint().required(), - inCountry: Joi.smallint().required(), - offShore: Joi.smallint().required(), + global: Joi.smallint(), + inCountry: Joi.smallint(), + offShore: Joi.smallint(), + niche: Joi.smallint(), + rate30Niche: Joi.smallint(), rate30Global: Joi.smallint(), rate30InCountry: Joi.smallint(), rate30OffShore: Joi.smallint(), + rate20Niche: Joi.smallint(), rate20Global: Joi.smallint(), rate20InCountry: Joi.smallint(), rate20OffShore: Joi.smallint() diff --git a/src/services/TeamService.js b/src/services/TeamService.js index ea1a5767..a6ac757e 100644 --- a/src/services/TeamService.js +++ b/src/services/TeamService.js @@ -998,7 +998,7 @@ async function _cleanRoleDTO (currentUser, role) { role.isExternalMember = true if (role.rates) { role.rates = _.map(role.rates, rate => - _.omit(rate, ['inCountry', 'offShore', 'rate30InCountry', 'rate30OffShore', 'rate20InCountry', 'rate20OffShore'])) + _.omit(rate, ['inCountry', 'offShore', 'niche', 'rate30InCountry', 'rate30OffShore', 'rate30Niche', 'rate20InCountry', 'rate20OffShore', 'rate20Niche'])) } return role }