Skip to content

Instantly share code, notes, and snippets.

@lucasdellasala
Created August 13, 2020 15:35
Show Gist options
  • Save lucasdellasala/620c1dbdcf80397210c253a1350f624b to your computer and use it in GitHub Desktop.
Save lucasdellasala/620c1dbdcf80397210c253a1350f624b to your computer and use it in GitHub Desktop.
repository.createCompetencia = (competencia) => {
const genero_id = competencia.genero == 0 ? null: competencia.genero;
const director_id = competencia.director == 0 ? null : competencia.director;
const actor_id = competencia.actor == 0 ? null : competencia.actor;
//Armando query de verificacion
let queryDeVerificacion = "SELECT * FROM pelicula p ";
let flag = false;
if (actor_id != null){
queryDeVerificacion = queryDeVerificacion + "JOIN actor_pelicula ap on p.id = ap.pelicula_id "
};
if (director_id != null){
queryDeVerificacion = queryDeVerificacion + "JOIN director_pelicula dp on p.id = dp.pelicula_id "
};
if (actor_id != null){
queryDeVerificacion = queryDeVerificacion + "WHERE ap.actor_id = ? ";
flag = true;
}
if (director_id != null){
if (flag == false){
queryDeVerificacion = queryDeVerificacion + "WHERE dp.director_id = ? ";
} else {
queryDeVerificacion = queryDeVerificacion + "AND dp.director_id = ?";
flag = true;
}
};
if (genero_id != null){
if(flag == false){
queryDeVerificacion = queryDeVerificacion + "WHERE p.genero_id = ?";
} else {
queryDeVerificacion = queryDeVerificacion + "AND p.genero_id = ?";
flag = true;
}
}
//Armando valores de la query
let values = [];
if (actor_id != null){
values.push(actor_id);
};
if (director_id != null){
values.push(director_id);
};
if (genero_id != null){
values.push(genero_id);
};
return new Promise((resolve, reject) => {
conn.query(queryDeVerificacion, values, (err,results) => {
//Verificacion
if (results.length < 2){
return reject(err);
}
resolve(
conn.query('INSERT INTO competencias SET ?',{nombre: competencia.nombre,
generoId: genero_id,
directorId: director_id,
actorId: actor_id}, (err,results) => {
if(err) return reject(err);
resolve(results);
})
);
});
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment