From aec76ddb4d6d7c97422882b6b80590714a7b1c14 Mon Sep 17 00:00:00 2001 From: "Luiz R. Rodrigues" Date: Thu, 24 Mar 2022 21:23:42 -0300 Subject: [PATCH 1/5] Remove private custom_fields from jobs api return --- src/server/services/recruitCRM.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/server/services/recruitCRM.js b/src/server/services/recruitCRM.js index e18252f6ee..34412d4ae5 100644 --- a/src/server/services/recruitCRM.js +++ b/src/server/services/recruitCRM.js @@ -51,6 +51,10 @@ const CANDIDATE_FIELDS_RESPONSE = [ 'salary_expectation', 'custom_fields', ]; +const OMIT_CUSTOM_FIELDS = [ + 'Candidates Link', + 'Wipro Centralization SPOC', +]; /** * Send email to Kiril/Nick for debuging gig application errors @@ -154,7 +158,16 @@ export default class RecruitCRMService { return res.send(error); } const data = await response.json(); - data.data = _.map(data.data, j => _.pick(j, JOB_FIELDS_RESPONSE)); + + // Sanitize Data + data.data = _.map(data.data, (j) => { + const sanitizeJobs = _.pick(j, JOB_FIELDS_RESPONSE); + sanitizeJobs.custom_fields = _.filter( + sanitizeJobs.custom_fields, f => !_.contains(OMIT_CUSTOM_FIELDS, f.field_name), + ); + return sanitizeJobs; + }); + return res.send(data); } catch (err) { return next(err); From 89e011dcf6c75105d60dd0fb708a7d3b3523c718 Mon Sep 17 00:00:00 2001 From: "Luiz R. Rodrigues" Date: Thu, 24 Mar 2022 21:25:13 -0300 Subject: [PATCH 2/5] Deploy sanitize-jobs-api to Beta env --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index eecaa1eab5..53acfbbb97 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -364,7 +364,7 @@ workflows: filters: branches: only: - - free + - sanitize-jobs-api # This is stage env for production QA releases - "build-prod-staging": context : org-global From 42eebe8a093e2b317d9948293b786da6321edda8 Mon Sep 17 00:00:00 2001 From: "Luiz R. Rodrigues" Date: Thu, 24 Mar 2022 21:51:25 -0300 Subject: [PATCH 3/5] Update _.contains with _.includes --- src/server/services/recruitCRM.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/services/recruitCRM.js b/src/server/services/recruitCRM.js index 34412d4ae5..682bda9004 100644 --- a/src/server/services/recruitCRM.js +++ b/src/server/services/recruitCRM.js @@ -161,11 +161,11 @@ export default class RecruitCRMService { // Sanitize Data data.data = _.map(data.data, (j) => { - const sanitizeJobs = _.pick(j, JOB_FIELDS_RESPONSE); - sanitizeJobs.custom_fields = _.filter( - sanitizeJobs.custom_fields, f => !_.contains(OMIT_CUSTOM_FIELDS, f.field_name), + const sanitizeJob = _.pick(j, JOB_FIELDS_RESPONSE); + sanitizeJob.custom_fields = _.filter( + sanitizeJob.custom_fields, f => !_.includes(OMIT_CUSTOM_FIELDS, f.field_name), ); - return sanitizeJobs; + return sanitizeJob; }); return res.send(data); From daa3fe53e096ae8de7193634a9c2cc93c9f2c036 Mon Sep 17 00:00:00 2001 From: "Luiz R. Rodrigues" Date: Thu, 24 Mar 2022 23:41:44 -0300 Subject: [PATCH 4/5] Added sanitizeJob() and apply to all recruit calls --- src/server/services/recruitCRM.js | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/server/services/recruitCRM.js b/src/server/services/recruitCRM.js index 682bda9004..1c9b205f22 100644 --- a/src/server/services/recruitCRM.js +++ b/src/server/services/recruitCRM.js @@ -76,6 +76,18 @@ function notifyKirilAndNick(error) { }); } +/** + * Sanitize Job before return + * @param {Object} job data from recuitcrm api + */ +function sanitizeJob(job) { + const sJob = _.pick(job, JOB_FIELDS_RESPONSE); + sJob.custom_fields = _.filter( + sJob.custom_fields, f => !_.includes(OMIT_CUSTOM_FIELDS, f.field_name), + ); + return sJob; +} + const updateProfileSchema = Joi.object().keys({ phone: Joi.string().required(), availability: Joi.boolean().required(), @@ -159,14 +171,7 @@ export default class RecruitCRMService { } const data = await response.json(); - // Sanitize Data - data.data = _.map(data.data, (j) => { - const sanitizeJob = _.pick(j, JOB_FIELDS_RESPONSE); - sanitizeJob.custom_fields = _.filter( - sanitizeJob.custom_fields, f => !_.includes(OMIT_CUSTOM_FIELDS, f.field_name), - ); - return sanitizeJob; - }); + data.data = _.map(data.data, j => sanitizeJob(j)); return res.send(data); } catch (err) { @@ -203,7 +208,7 @@ export default class RecruitCRMService { return res.send(error); } const data = await response.json(); - return res.send(_.pick(data, JOB_FIELDS_RESPONSE)); + return res.send(sanitizeJob(data)); } catch (err) { return next(err); } @@ -255,11 +260,11 @@ export default class RecruitCRMService { const pageData = await pageDataRsp.json(); data.data = _.flatten(data.data.concat(pageData.data)); } - const toSend = _.map(data.data, j => _.pick(j, JOB_FIELDS_RESPONSE)); + const toSend = _.map(data.data, j => sanitizeJob(j)); return toSend; }); } - const toSend = _.map(data.data, j => _.pick(j, JOB_FIELDS_RESPONSE)); + const toSend = _.map(data.data, j => sanitizeJob(j)); return toSend; } catch (err) { return err; @@ -316,7 +321,7 @@ export default class RecruitCRMService { const pageData = await pageDataRsp.json(); data.data = _.flatten(data.data.concat(pageData.data)); } - const toSend = _.map(data.data, j => _.pick(j, JOB_FIELDS_RESPONSE)); + const toSend = _.map(data.data, j => sanitizeJob(j)); gigsCache.set(CACHE_KEY, toSend); return res.send(toSend); }) @@ -324,7 +329,7 @@ export default class RecruitCRMService { error: e, })); } - const toSend = _.map(data.data, j => _.pick(j, JOB_FIELDS_RESPONSE)); + const toSend = _.map(data.data, j => sanitizeJob(j)); gigsCache.set(CACHE_KEY, toSend); return res.send(toSend); } catch (err) { From bc888d7dd5f5c5fd7796f1846c30cede20ba93e8 Mon Sep 17 00:00:00 2001 From: "Luiz R. Rodrigues" Date: Tue, 29 Mar 2022 23:14:08 -0300 Subject: [PATCH 5/5] Remove Account Executive from Recruit API return --- src/server/services/recruitCRM.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/services/recruitCRM.js b/src/server/services/recruitCRM.js index 1c9b205f22..3ae3841cb3 100644 --- a/src/server/services/recruitCRM.js +++ b/src/server/services/recruitCRM.js @@ -53,6 +53,7 @@ const CANDIDATE_FIELDS_RESPONSE = [ ]; const OMIT_CUSTOM_FIELDS = [ 'Candidates Link', + 'Account Executive', 'Wipro Centralization SPOC', ];