Este archivo define los servicios relacionados con la gestión del CV de los usuarios en Matchify, utilizando el repositorio cvRepository.js para acceder y manipular los datos. Los servicios permiten crear, actualizar, eliminar y obtener las secciones del CV de un usuario.
import {
createEducacion, createCertificacion, createExperienciaLaboral, createIdioma, createSkill,
updateEducacion, updateCertificacion, updateExperienciaLaboral, updateIdioma, updateSkill,
deleteEducacion, deleteCertificacion, deleteExperienciaLaboral, deleteIdioma, deleteSkill,
getEducacion, getCertificacion, getExperienciaLaboral, getIdioma, getSkill, getCVCandidato
} from '../repositories/cvRepository.js';
export const createCVService = async (userId, cvData) => {
const { educacion = [], certificacion = [], experienciaLaboral = [], idioma = [], skill = [] } = cvData;
if (!Array.isArray(educacion) || !Array.isArray(certificacion) || !Array.isArray(experienciaLaboral) || !Array.isArray(idioma) || !Array.isArray(skill)) {
throw new Error('Algunos de los datos proporcionados no son arrays');
}
const educacionResult = await createEducacion(userId, educacion);
const certificacionResult = await createCertificacion(userId, certificacion);
const experienciaLaboralResult = await createExperienciaLaboral(userId, experienciaLaboral);
const idiomaResult = await createIdioma(userId, idioma);
const skillResult = await createSkill(userId, skill);
return {
educacion: educacionResult,
certificacion: certificacionResult,
experienciaLaboral: experienciaLaboralResult,
idioma: idiomaResult,
skill: skillResult
};
};
export const updateCVService = async (userId, cvData) => {
const { educacion, certificacion, experienciaLaboral, idioma, skill } = cvData;
const educacionResult = await updateEducacion(userId, educacion);
const certificacionResult = await updateCertificacion(userId, certificacion);
const experienciaLaboralResult = await updateExperienciaLaboral(userId, experienciaLaboral);
const idiomaResult = await updateIdioma(userId, idioma);
const skillResult = await updateSkill(userId, skill);
return {
educacion: educacionResult,
certificacion: certificacionResult,
experienciaLaboral: experienciaLaboralResult,
idioma: idiomaResult,
skill: skillResult
};
};
export const deleteCVSectionService = async (userId, section, id) => {
switch (section) {
case 'educacion':
return await deleteEducacion(userId, id);
case 'certificacion':
return await deleteCertificacion(userId, id);
case 'experienciaLaboral':
return await deleteExperienciaLaboral(userId, id);
case 'idioma':
return await deleteIdioma(userId, id);
case 'skill':
return await deleteSkill(userId, id);
default:
throw new Error('Sección no válida');
}
};
export const getCVService = async (userId) => {
const educacion = await getEducacion(userId);
const certificacion = await getCertificacion(userId);
const experienciaLaboral = await getExperienciaLaboral(userId);
const idioma = await getIdioma(userId);
const skill = await getSkill(userId);
return {
educacion,
certificacion,
experienciaLaboral,
idioma,
skill
};
};
export const getCVCandidatoService = async (candidatoId) => {
return await getCVCandidato(candidatoId);
};
createCVService(userId, cvData):
updateCVService(userId, cvData):
deleteCVSectionService(userId, section, id):
id del registro.getCVService(userId):
getCVCandidatoService(candidatoId):
candidatoId, utilizando la función getCVCandidato del repositorio.