From fc7cde4c5a6502ab711bfe3ebc7d9f54094f4753 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sat, 3 Dec 2022 18:21:15 -0800 Subject: [PATCH] Fix race condition for base skill mismatch check --- app/controllers/api/v1/jobs_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/jobs_controller.rb b/app/controllers/api/v1/jobs_controller.rb index 2c0a624..74d5a9a 100644 --- a/app/controllers/api/v1/jobs_controller.rb +++ b/app/controllers/api/v1/jobs_controller.rb @@ -121,7 +121,7 @@ class Api::V1::JobsController < Api::V1::ApiController if skills.values.compact.length.positive? max_skill_of_type = 2 skills_to_check = skills.compact.reject { |key, _| key == position } - + sum = skills_to_check.values.count { |value| value.send(type) } sum + 1 <= max_skill_of_type @@ -133,7 +133,7 @@ class Api::V1::JobsController < Api::V1::ApiController def mismatched_skill(job, skill) mismatched_main = (skill.job.id != job.id) && skill.main && !skill.sub mismatched_emp = (skill.job.id != job.id) && skill.emp - mismatched_base = (job.row != 'ex2' || skill.job.base_job.id != job.base_job.id) && skill.base + mismatched_base = skill.job.base_job && (job.row != 'ex2' || skill.job.base_job.id != job.base_job.id) && skill.base if %w[4 5 ex2].include?(job.row) true if mismatched_emp || mismatched_base || mismatched_main