selectWorkById et selectLastWorkByUserId
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details

pull/3/head
Matis MAZINGUE 11 months ago
parent 10c9d5e41b
commit aa0516dc72

@ -27,9 +27,10 @@ export function runDB(
export function allDB<T>(
db: sqlite3.Database,
query: string,
params?: any[]
): Promise<unknown[]> {
return new Promise((resolve, reject) => {
db.all(query, (err, rows) => {
db.all(query, params, (err, rows) => {
if (err) {
reject(err);
} else {
@ -333,6 +334,31 @@ export function selectAllWorks(db: sqlite3.Database): Promise<unknown[]> {
return allDB(db, selectAllWorksQuery);
}
/* Sélectionner tous les works de la table work */
export function selectWorksByUserId(db: sqlite3.Database, user_id: number): Promise<unknown[]> {
const selectWorksByUserIdQuery = `SELECT * FROM work
WHERE user_id = ?`;
return allDB(db, selectWorksByUserIdQuery, [user_id]);
}
/* Sélectionner un work par son ID */
export function selectWorkById(db: sqlite3.Database, id: number) {
const selectWorkByIdQuery = `SELECT * FROM work WHERE id_work = ?`;
return getDB(db, selectWorkByIdQuery, [id]);
}
/* Sélectionner le dernier work par l'id de l'utilisateur */
export function selectLastWorkByUserId(db: sqlite3.Database, user_id: number) {
const selectLastWorkByUserIdQuery = `SELECT * FROM work
WHERE user_id = ?
ORDER BY date DESC
LIMIT 1`;
return getDB(db, selectLastWorkByUserIdQuery, [user_id]);
}
/* Supprimer tous les works de la table work */
export function deleteAllWorks(db: sqlite3.Database) {
const deleteAllWorksQuery = `DELETE FROM work`;
@ -347,13 +373,6 @@ export function deleteWork(db: sqlite3.Database, id: number) {
return runDB(db, deleteWorkQuery, [id]);
}
/* Sélectionner un work par son ID */
export function selectWorkById(db: sqlite3.Database, id: number) {
const selectWorkByIdQuery = `SELECT * FROM work WHERE id_work = ?`;
return getDB(db, selectWorkByIdQuery, [id]);
}
/* Update the work title by its ID */
export function updateWorkTitle(
db: sqlite3.Database,

@ -542,6 +542,25 @@ fastify.get(
},
);
/* Route pour récupérer un work par l'id de l'utilisateur */
fastify.get(
"/works/user/:user_id",
{
schema: {
params: Type.Object({
user_id: Type.Number({
minimum: 0,
}),
}),
},
},
async (request, reply) => {
const { user_id } = request.params;
const work = await db.selectLastWorkByUserId(database, user_id);
reply.send(work);
},
);
/* Update the work title by its ID */
fastify.put(
"/works/:id/title",

Loading…
Cancel
Save