diff --git a/src/database.ts b/src/database.ts index 989483f..f33f9f6 100644 --- a/src/database.ts +++ b/src/database.ts @@ -49,9 +49,9 @@ export function getDB( db: sqlite3.Database, query: string, params: any[], -): Promise { +): Promise { return new Promise((resolve, reject) => { - db.get(query, params, (err, row: any) => { + db.get(query, params, (err, row: T) => { if (err) { reject(err); } else { @@ -138,6 +138,27 @@ export async function insertUser( } } +/* Vérifier si un utilisateur existe dans la table registered_user */ +export async function verifyUser( + db: sqlite3.Database, + login: string +): Promise { + const verifyUserQuery = `SELECT login, password FROM registered_user WHERE login = ?`; + + const res = await getDB(db, verifyUserQuery, [login]); + + if (!res) { + return null; + } else { + return res; + } +} + +export type User = { + login: string; + password: string; +}; + /* Modifier le login d'un utilisateur dans la table registered_user */ export function updateUserLogin( db: sqlite3.Database, diff --git a/src/server.ts b/src/server.ts index e4557de..cde13b7 100644 --- a/src/server.ts +++ b/src/server.ts @@ -187,6 +187,29 @@ fastify.post( } ); +/* Route pour vérifier si un utilisateur existe */ +fastify.post( + "/users/login", + { + schema: { + body: Type.Object({ + login: Type.String(), + password: Type.String(), + }), + }, + }, + async (request, reply) => { + const { login, password } = request.body; + const user = await db.verifyUser(database, login); + + if (user === null || user.password !== password) { + reply.send({ success: false }); + } else { + reply.send({ success: true }); + } + } +); + /* Route pour mettre à jour le login d'un utilisateur */ fastify.put( "/users/:id/login",