From 27c346a0e11b8c667ace693ecb3c083459a1d905 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 20 Sep 2021 15:52:00 +0800 Subject: [PATCH 01/15] sortBy updatedAt --- src/services/JobService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/JobService.js b/src/services/JobService.js index 19a4cbd5..671c05e5 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -594,7 +594,7 @@ searchJobs.schema = Joi.object().keys({ criteria: Joi.object().keys({ page: Joi.number().integer(), perPage: Joi.number().integer(), - sortBy: Joi.string().valid('id', 'createdAt', 'startDate', 'rateType', 'status'), + sortBy: Joi.string().valid('id', 'createdAt', 'updatedAt', 'startDate', 'rateType', 'status'), sortOrder: Joi.string().valid('desc', 'asc'), projectId: Joi.number().integer(), externalId: Joi.string(), From 35c1f858c78931bcdf9e9c275268df51bfead814 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 20 Sep 2021 16:38:44 +0800 Subject: [PATCH 02/15] weeklypayment added --- src/services/JobService.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/services/JobService.js b/src/services/JobService.js index 671c05e5..63d32f48 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -465,7 +465,9 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } 'rateType', 'workload', 'title', - 'status' + 'status', + 'minSalary', + 'maxSalary' ]), (value, key) => { let must if (key === 'description' || key === 'title') { @@ -482,6 +484,15 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } [`${key}s`]: [value] } } + } else if (key === 'minSalary' || key === 'maxSalary') { + const salaryOp = key === 'minSalary' ? 'gte' : 'lte' + must = { + range: { + [key]: { + [salaryOp]: value + } + } + } } else { must = { term: { @@ -568,6 +579,16 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } if (criteria.jobIds && criteria.jobIds.length > 0) { filter[Op.and].push({ id: criteria.jobIds }) } + if (criteria.minSalary !== undefined) { + filter.minSalary = { + [Op.gte]: criteria.minSalary + } + } + if (criteria.maxSalary !== undefined) { + filter.maxSalary = { + [Op.lte]: criteria.maxSalary + } + } const jobs = await Job.findAll({ where: filter, offset: ((page - 1) * perPage), @@ -609,7 +630,9 @@ searchJobs.schema = Joi.object().keys({ workload: Joi.workload(), status: Joi.jobStatus(), projectIds: Joi.array().items(Joi.number().integer()).single(), - jobIds: Joi.array().items(Joi.string().uuid()) + jobIds: Joi.array().items(Joi.string().uuid()), + minSalary: Joi.number().integer(), + maxSalary: Joi.number().integer() }).required(), options: Joi.object() }).required() From d4f986f03d605daea4d4011e8cb9f74fbed3e15c Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 20 Sep 2021 17:33:12 +0800 Subject: [PATCH 03/15] add skill Ids in the body --- src/controllers/JobController.js | 2 +- src/services/JobService.js | 39 +++++++++++++++++++++++++++++--- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/controllers/JobController.js b/src/controllers/JobController.js index 606c690b..45140cff 100644 --- a/src/controllers/JobController.js +++ b/src/controllers/JobController.js @@ -58,7 +58,7 @@ async function deleteJob (req, res) { * @param res the response */ async function searchJobs (req, res) { - const query = { ...req.query, jobIds: _.get(req, 'body.jobIds', []) } + const query = { ...req.query, jobIds: _.get(req, 'body.jobIds', []), bodySkills: _.get(req, 'body.bodySkills', []) } const result = await service.searchJobs(req.authUser, query) helper.setResHeaders(req, res, result) res.send(result.result) diff --git a/src/services/JobService.js b/src/services/JobService.js index 63d32f48..a4a129ee 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -520,6 +520,15 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } } }) } + console.log(criteria.bodySkills) + // if critera contains bodySkills, filter skills with this value + if (criteria.bodySkills && criteria.bodySkills.length > 0) { + esQuery.body.query.bool.filter.push({ + terms: { + skills: criteria.bodySkills + } + }) + } logger.debug({ component: 'JobService', context: 'searchJobs', message: `Query: ${JSON.stringify(esQuery)}` }) const { body } = await esClient.search(esQuery) @@ -566,9 +575,32 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } [Op.like]: `%${criteria.title}%` } } - if (criteria.skill) { - filter.skills = { - [Op.contains]: [criteria.skill] + if (criteria.skill || (criteria.bodySkills && criteria.bodySkills.length > 0)) { + const skill = criteria.skill + const bodySkills = criteria.bodySkills + if (skill && bodySkills && bodySkills.length > 0) { + filter.skills = { + [Op.and]: [ + { + [Op.contains]: [criteria.skill] + }, + { + [Op.or]: _.map(bodySkills, (item) => { + return { [Op.contains]: [item] } + }) + } + ] + } + } else if (skill) { + filter.skills = { + [Op.contains]: [criteria.skill] + } + } else if (bodySkills && bodySkills > 0) { + filter.skills = { + [Op.or]: _.map(bodySkills, (item) => { + return { [Op.contains]: [item] } + }) + } } } if (criteria.role) { @@ -631,6 +663,7 @@ searchJobs.schema = Joi.object().keys({ status: Joi.jobStatus(), projectIds: Joi.array().items(Joi.number().integer()).single(), jobIds: Joi.array().items(Joi.string().uuid()), + bodySkills: Joi.array().items(Joi.string().uuid()), minSalary: Joi.number().integer(), maxSalary: Joi.number().integer() }).required(), From 697ed46ab6becab394f552b63ed48f8d68e0e994 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 20 Sep 2021 19:22:17 +0800 Subject: [PATCH 04/15] job Location added --- src/services/JobService.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/services/JobService.js b/src/services/JobService.js index a4a129ee..7bd35dbd 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -467,10 +467,11 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } 'title', 'status', 'minSalary', - 'maxSalary' + 'maxSalary', + 'jobLocation' ]), (value, key) => { let must - if (key === 'description' || key === 'title') { + if (key === 'description' || key === 'title' || key === 'jobLocation') { must = { match: { [key]: { @@ -520,7 +521,6 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } } }) } - console.log(criteria.bodySkills) // if critera contains bodySkills, filter skills with this value if (criteria.bodySkills && criteria.bodySkills.length > 0) { esQuery.body.query.bool.filter.push({ @@ -575,6 +575,11 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } [Op.like]: `%${criteria.title}%` } } + if (criteria.jobLocation) { + filter.jobLocation = { + [Op.like]: `%${criteria.jobLocation}%` + } + } if (criteria.skill || (criteria.bodySkills && criteria.bodySkills.length > 0)) { const skill = criteria.skill const bodySkills = criteria.bodySkills @@ -665,7 +670,8 @@ searchJobs.schema = Joi.object().keys({ jobIds: Joi.array().items(Joi.string().uuid()), bodySkills: Joi.array().items(Joi.string().uuid()), minSalary: Joi.number().integer(), - maxSalary: Joi.number().integer() + maxSalary: Joi.number().integer(), + jobLocation: Joi.string() }).required(), options: Joi.object() }).required() From a0a8ab5559dfeebdc8f7443bc522bbf748c54d4c Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 20 Sep 2021 22:45:33 +0800 Subject: [PATCH 05/15] jobLocation added --- src/services/JobService.js | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/services/JobService.js b/src/services/JobService.js index 7bd35dbd..e8a25f51 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -444,7 +444,8 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } query: { bool: { must: [], - filter: [] + filter: [], + should: [] } }, from: (page - 1) * perPage, @@ -467,11 +468,10 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } 'title', 'status', 'minSalary', - 'maxSalary', - 'jobLocation' + 'maxSalary' ]), (value, key) => { let must - if (key === 'description' || key === 'title' || key === 'jobLocation') { + if (key === 'description' || key === 'title') { must = { match: { [key]: { @@ -505,6 +505,27 @@ async function searchJobs (currentUser, criteria, options = { returnAll: false } } esQuery.body.query.bool.must.push(must) }) + // If criteria contains jobLocation, filter jobLocation with this value + if (criteria.jobLocation) { + // filter out null value + esQuery.body.query.bool.should.push({ + bool: { + must: [ + { + exists: { + field: 'jobLocation' + } + } + ] + } + }) + // filter the jobLocation + esQuery.body.query.bool.should.push({ + term: { + jobLocation: criteria.jobLocation + } + }) + } // If criteria contains projectIds, filter projectId with this value if (criteria.projectIds) { esQuery.body.query.bool.filter.push({ From 9d55d1294e1238f5f80b2b949a4486e4e91659a5 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 20 Sep 2021 22:58:19 +0800 Subject: [PATCH 06/15] update the swagger --- docs/swagger.yaml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/docs/swagger.yaml b/docs/swagger.yaml index f1c52cb6..30e6b94c 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -102,7 +102,7 @@ paths: schema: type: string default: id - enum: ["id", "createdAt", "startDate", "rateType", "status"] + enum: ["id", "createdAt", "updatedAt", "startDate", "rateType", "status"] description: The sort by column. - in: query name: sortOrder @@ -118,6 +118,24 @@ paths: schema: type: integer description: The project id. + - in: query + name: jobLocation + required: false + schema: + type: string + description: The location of the jobs. + - in: query + name: minSalary + required: false + schema: + type: integer + description: The minimum Salary. + - in: query + name: maxSalary + required: false + schema: + type: integer + description: The maximum Salary. - in: query name: isApplicationPageActive required: false @@ -4116,6 +4134,12 @@ components: description: "The user who updated the job last time.(Will get the user info from the token)" JobSearchBody: properties: + bodySkills: + type: array + items: + type: string + format: uuid + description: "The array of skill ids" jobIds: type: array items: From a870d63b0f6f63dac899432cada6d1dcc1f541f9 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 20 Sep 2021 23:17:16 +0800 Subject: [PATCH 07/15] update job model to have flag --- .../2021-09-20-job-add-job-flag-fields.js | 45 +++++++++++++++++++ src/bootstrap.js | 1 + src/models/Job.js | 24 ++++++++++ 3 files changed, 70 insertions(+) create mode 100644 migrations/2021-09-20-job-add-job-flag-fields.js diff --git a/migrations/2021-09-20-job-add-job-flag-fields.js b/migrations/2021-09-20-job-add-job-flag-fields.js new file mode 100644 index 00000000..b61c991b --- /dev/null +++ b/migrations/2021-09-20-job-add-job-flag-fields.js @@ -0,0 +1,45 @@ +const config = require('config') + +/* + * Add show_in_hot_list, featured, hot_list_excerpt and job_tag to the Job model. +type: Sequelize.BOOLEAN, + defaultValue: false, + allowNull: false + */ + +module.exports = { + up: async (queryInterface, Sequelize) => { + const transaction = await queryInterface.sequelize.transaction() + try { + await queryInterface.addColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'show_in_hot_list', + { type: Sequelize.BOOLEAN, allowNull: true, defaultValue: false }, + { transaction }) + await queryInterface.addColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'featured', + { type: Sequelize.BOOLEAN, allowNull: true, defaultValue: false }, + { transaction }) + await queryInterface.addColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'hot_list_excerpt', + { type: Sequelize.STRING(255), allowNull: true, defaultValue: '' }, + { transaction }) + await queryInterface.addColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'job_tag', + { type: Sequelize.STRING(30), allowNull: true, defaultValue: '' }, + { transaction }) + await transaction.commit() + } catch (err) { + await transaction.rollback() + throw err + } + }, + down: async (queryInterface, Sequelize) => { + const transaction = await queryInterface.sequelize.transaction() + try { + await queryInterface.removeColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'show_in_hot_list', { transaction }) + await queryInterface.removeColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'featured', { transaction }) + await queryInterface.removeColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'hot_list_excerpt', { transaction }) + await queryInterface.removeColumn({ tableName: 'jobs', schema: config.DB_SCHEMA_NAME }, 'job_tag', { transaction }) + await transaction.commit() + } catch (err) { + await transaction.rollback() + throw err + } + } +} diff --git a/src/bootstrap.js b/src/bootstrap.js index a8db1ad3..a92e7722 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -13,6 +13,7 @@ Joi.page = () => Joi.number().integer().min(1).default(1) Joi.perPage = () => Joi.number().integer().min(1).default(20) Joi.rateType = () => Joi.string().valid('hourly', 'daily', 'weekly', 'monthly', 'annual') Joi.jobStatus = () => Joi.string().valid('sourcing', 'in-review', 'assigned', 'closed', 'cancelled') +Joi.jobTag = () => Joi.string().valid('new', 'dollor', 'hot') Joi.resourceBookingStatus = () => Joi.string().valid('placed', 'closed', 'cancelled') Joi.workload = () => Joi.string().valid('full-time', 'fractional') Joi.jobCandidateStatus = () => Joi.string().valid('open', 'placed', 'selected', 'client rejected - screening', 'client rejected - interview', 'rejected - other', 'cancelled', 'interview', 'topcoder-rejected', 'applied', 'rejected-pre-screen', 'skills-test', 'skills-test', 'phone-screen', 'job-closed', 'offered', 'withdrawn', 'withdrawn-prescreen') diff --git a/src/models/Job.js b/src/models/Job.js index 46bb1fdd..90d9cf25 100644 --- a/src/models/Job.js +++ b/src/models/Job.js @@ -140,6 +140,30 @@ module.exports = (sequelize) => { type: Sequelize.UUID }) }, + showInHotList: { + field: 'show_in_hot_list', + type: Sequelize.BOOLEAN, + allowNull: true, + defaultValue: false + }, + featured: { + field: 'featured', + type: Sequelize.BOOLEAN, + allowNull: true, + defaultValue: false + }, + hotListExcerpt: { + field: 'hot_list_excerpt', + type: Sequelize.STRING(255), + allowNull: true, + defaultValue: '' + }, + jobTag: { + field: 'job_tag', + type: Sequelize.STRING(30), + allowNull: true, + defaultValue: '' + }, createdBy: { field: 'created_by', type: Sequelize.UUID, From cd869d49db41429df088feae807c5ecb6a5d550c Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Wed, 22 Sep 2021 20:24:22 +0800 Subject: [PATCH 08/15] accomodate API --- src/bootstrap.js | 2 +- src/services/JobService.js | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/bootstrap.js b/src/bootstrap.js index a92e7722..49652658 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -13,7 +13,7 @@ Joi.page = () => Joi.number().integer().min(1).default(1) Joi.perPage = () => Joi.number().integer().min(1).default(20) Joi.rateType = () => Joi.string().valid('hourly', 'daily', 'weekly', 'monthly', 'annual') Joi.jobStatus = () => Joi.string().valid('sourcing', 'in-review', 'assigned', 'closed', 'cancelled') -Joi.jobTag = () => Joi.string().valid('new', 'dollor', 'hot') +Joi.jobTag = () => Joi.string().valid('new', 'dollor', 'hot').allow('') Joi.resourceBookingStatus = () => Joi.string().valid('placed', 'closed', 'cancelled') Joi.workload = () => Joi.string().valid('full-time', 'fractional') Joi.jobCandidateStatus = () => Joi.string().valid('open', 'placed', 'selected', 'client rejected - screening', 'client rejected - interview', 'rejected - other', 'cancelled', 'interview', 'topcoder-rejected', 'applied', 'rejected-pre-screen', 'skills-test', 'skills-test', 'phone-screen', 'job-closed', 'offered', 'withdrawn', 'withdrawn-prescreen') diff --git a/src/services/JobService.js b/src/services/JobService.js index 19a4cbd5..8b9c49e3 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -231,7 +231,11 @@ createJob.schema = Joi.object() jobLocation: Joi.stringAllowEmpty().allow(null), jobTimezone: Joi.stringAllowEmpty().allow(null), currency: Joi.stringAllowEmpty().allow(null), - roleIds: Joi.array().items(Joi.string().uuid().required()) + roleIds: Joi.array().items(Joi.string().uuid().required()), + showInHotList: Joi.boolean().default(false), + featured: Joi.boolean().default(false), + hotListExcerpt: Joi.stringAllowEmpty().default(''), + jobTag: Joi.jobTag().default('') }) .required(), onTeamCreating: Joi.boolean().default(false) @@ -327,7 +331,11 @@ partiallyUpdateJob.schema = Joi.object() jobLocation: Joi.stringAllowEmpty().allow(null), jobTimezone: Joi.stringAllowEmpty().allow(null), currency: Joi.stringAllowEmpty().allow(null), - roleIds: Joi.array().items(Joi.string().uuid().required()).allow(null) + roleIds: Joi.array().items(Joi.string().uuid().required()).allow(null), + showInHotList: Joi.boolean().default(false), + featured: Joi.boolean().default(false), + hotListExcerpt: Joi.stringAllowEmpty().default(''), + jobTag: Joi.jobTag().default('') }) .required() }) @@ -367,7 +375,11 @@ fullyUpdateJob.schema = Joi.object().keys({ jobLocation: Joi.stringAllowEmpty().allow(null), jobTimezone: Joi.stringAllowEmpty().allow(null), currency: Joi.stringAllowEmpty().allow(null), - roleIds: Joi.array().items(Joi.string().uuid().required()).default(null) + roleIds: Joi.array().items(Joi.string().uuid().required()).default(null), + showInHotList: Joi.boolean().default(false), + featured: Joi.boolean().default(false), + hotListExcerpt: Joi.stringAllowEmpty().default(''), + jobTag: Joi.jobTag().default('') }).required() }).required() From b0d2c2f57f42b1f54c8beca37d9999afae3cf359 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Wed, 22 Sep 2021 20:36:48 +0800 Subject: [PATCH 09/15] update swagger --- docs/swagger.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/swagger.yaml b/docs/swagger.yaml index f1c52cb6..8de232b8 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -4197,6 +4197,20 @@ components: type: string format: uuid description: "The role id." + showInHotList: + type: boolean + default: false + featured: + type: boolean + default: false + hotListExcerpt: + type: string + example: "This is very hot job" + description: "The further instruction to show for the hot job" + jobTag: + type: string + enum: ["", "new", "dollor", "hot"] + description: "The tag of a job" isApplicationPageActive: type: boolean default: false @@ -4739,6 +4753,20 @@ components: type: string format: uuid description: "The role id." + showInHotList: + type: boolean + default: false + featured: + type: boolean + default: false + hotListExcerpt: + type: string + example: "This is very hot job" + description: "The further instruction to show for the hot job" + jobTag: + type: string + enum: ["", "new", "dollor", "hot"] + description: "The tag of a job" isApplicationPageActive: type: boolean default: false From 8a0ca8aa98d1a032af02df52336659d45bdccfec Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Wed, 22 Sep 2021 20:44:40 +0800 Subject: [PATCH 10/15] ci:deploying --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 19092136..03abdd32 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,7 +68,7 @@ workflows: branches: only: - dev - - feature/shapeup4-cqrs-update + - gigs-change-aggs # Production builds are exectuted only on tagged commits to the # master branch. From b9c5520a9eb7909210354dea37ca6e093f3a8850 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Thu, 23 Sep 2021 15:22:52 +0800 Subject: [PATCH 11/15] fix api level --- src/services/JobService.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/services/JobService.js b/src/services/JobService.js index 8b9c49e3..5f59aa32 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -332,10 +332,10 @@ partiallyUpdateJob.schema = Joi.object() jobTimezone: Joi.stringAllowEmpty().allow(null), currency: Joi.stringAllowEmpty().allow(null), roleIds: Joi.array().items(Joi.string().uuid().required()).allow(null), - showInHotList: Joi.boolean().default(false), - featured: Joi.boolean().default(false), - hotListExcerpt: Joi.stringAllowEmpty().default(''), - jobTag: Joi.jobTag().default('') + showInHotList: Joi.boolean().default(false).allow(null), + featured: Joi.boolean().default(false).allow(null), + hotListExcerpt: Joi.stringAllowEmpty().default('').allow(null), + jobTag: Joi.jobTag().default('').allow(null) }) .required() }) @@ -376,10 +376,10 @@ fullyUpdateJob.schema = Joi.object().keys({ jobTimezone: Joi.stringAllowEmpty().allow(null), currency: Joi.stringAllowEmpty().allow(null), roleIds: Joi.array().items(Joi.string().uuid().required()).default(null), - showInHotList: Joi.boolean().default(false), - featured: Joi.boolean().default(false), - hotListExcerpt: Joi.stringAllowEmpty().default(''), - jobTag: Joi.jobTag().default('') + showInHotList: Joi.boolean().default(false).allow(null), + featured: Joi.boolean().default(false).allow(null), + hotListExcerpt: Joi.stringAllowEmpty().default('').allow(null), + jobTag: Joi.jobTag().default('').allow(null) }).required() }).required() From 523cd4afc441a12eaefbfb013793d379009f0200 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Thu, 23 Sep 2021 17:08:02 +0800 Subject: [PATCH 12/15] remove all null for patch and put operation --- src/services/JobService.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/services/JobService.js b/src/services/JobService.js index 5f59aa32..3806dafe 100644 --- a/src/services/JobService.js +++ b/src/services/JobService.js @@ -332,8 +332,8 @@ partiallyUpdateJob.schema = Joi.object() jobTimezone: Joi.stringAllowEmpty().allow(null), currency: Joi.stringAllowEmpty().allow(null), roleIds: Joi.array().items(Joi.string().uuid().required()).allow(null), - showInHotList: Joi.boolean().default(false).allow(null), - featured: Joi.boolean().default(false).allow(null), + showInHotList: Joi.boolean().default(false), + featured: Joi.boolean().default(false), hotListExcerpt: Joi.stringAllowEmpty().default('').allow(null), jobTag: Joi.jobTag().default('').allow(null) }) @@ -376,8 +376,8 @@ fullyUpdateJob.schema = Joi.object().keys({ jobTimezone: Joi.stringAllowEmpty().allow(null), currency: Joi.stringAllowEmpty().allow(null), roleIds: Joi.array().items(Joi.string().uuid().required()).default(null), - showInHotList: Joi.boolean().default(false).allow(null), - featured: Joi.boolean().default(false).allow(null), + showInHotList: Joi.boolean().default(false), + featured: Joi.boolean().default(false), hotListExcerpt: Joi.stringAllowEmpty().default('').allow(null), jobTag: Joi.jobTag().default('').allow(null) }).required() From 25fb7a176e17ae36ece4673484fe21b6c0931c83 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Thu, 23 Sep 2021 21:26:53 +0800 Subject: [PATCH 13/15] restore ci --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 03abdd32..b91a021d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,7 +68,6 @@ workflows: branches: only: - dev - - gigs-change-aggs # Production builds are exectuted only on tagged commits to the # master branch. From bd704d9ebd9494ea756d14d600000384bdf68041 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Thu, 23 Sep 2021 21:31:17 +0800 Subject: [PATCH 14/15] ci:redeploying --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index b91a021d..03abdd32 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,6 +68,7 @@ workflows: branches: only: - dev + - gigs-change-aggs # Production builds are exectuted only on tagged commits to the # master branch. From 5cdb9f8a4a16825fe6af33a24940be66e6b1de8b Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Thu, 23 Sep 2021 21:50:52 +0800 Subject: [PATCH 15/15] restore ci --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 03abdd32..b91a021d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,7 +68,6 @@ workflows: branches: only: - dev - - gigs-change-aggs # Production builds are exectuted only on tagged commits to the # master branch.