api/lib/domain/services/skills-service.js

Summary

Maintainability
A
3 hrs
Test Coverage
const skillsRespository = require('../../infrastructure/repositories/skill-repository');

module.exports = {
  saveAssessmentSkills(skills) {
    if (!skills) {
      return Promise.resolve(null);
    }
    const formattedValitedSkills = _formatValitedSkills(skills.assessmentId, skills.validatedSkills);
    const formattedFailedSkills = _formatFailedSkills(skills.assessmentId, skills.failedSkills);

    const formattedSkills = [].concat(formattedValitedSkills, formattedFailedSkills);

    return skillsRespository.save(formattedSkills);
  }
};

function _formatValitedSkills(assessmentId, skills) {
  return [...skills].reduce((acc, skill) => {
    acc.push({
      assessmentId,
      name: skill.name,
      status: 'ok'
    });
    return acc;
  }, []);
}

function _formatFailedSkills(assessmentId, skills) {
  return [...skills].reduce((acc, skill) => {
    acc.push({
      assessmentId,
      name: skill.name,
      status: 'ko'
    });
    return acc;
  }, []);
}