diff --git a/src/services/user.service.ts b/src/services/user.service.ts index 3fc09e0..6da1ce6 100644 --- a/src/services/user.service.ts +++ b/src/services/user.service.ts @@ -26,14 +26,18 @@ const DbHandler = new MySqlService.Handler("UserService"); async function getUserByEmail(targetEmail: string): Promise { try { const dbUser = await MySqlService.User.getByEmail(DbHandler, targetEmail); - if (dbUser === undefined) { + if (dbUser.length === 0) { logger.info(`\n\n> User not found (${targetEmail})\n`); return { error: ErrorType.NotFound, message: "The user was not fund.", }; } - return dbUser; + if (dbUser.length === 1 && dbUser[0]) return dbUser[0]; + return { + error: ErrorType.ServiceError, + message: "To many user found, suspicious.", + }; } catch (err) { logger.error(err); return { @@ -135,17 +139,18 @@ async function register(inputData: IReqRegister): Promise { }; } const currentId = v4(); + logger.info(`\n\n> Trying to insert a new user... (${currentId})\n`); const NewUser = await MySqlService.User.insert(DbHandler, { id: currentId, email: inputData.email, username: inputData.username, firstname: inputData.firstName, lastname: inputData.lastName, - dob: inputData.dob, + dob: new Date(), hash: passwordHash, gdpr: currentDate, is_admin: false, - is_mail_verified: false, + is_email_verified: false, }); if ("error" in NewUser || NewUser.affectedRows === 0) { return { @@ -240,6 +245,16 @@ async function login(inputData: IReqLogin): Promise { } } +async function getByEmailService(email: string): Promise { + const dbUser = await MySqlService.User.getByEmail(DbHandler, email); + if (dbUser === undefined) { + logger.trace(`\n\n> User not found in DB (${email})\n`); + return false; + } + logger.trace(dbUser); + return dbUser; +} + //TOTest /** * Retrieves all users from the database. @@ -318,6 +333,7 @@ const UserService = { login: login, getAll: getAllUsersService, getFromId: getUserFromIdService, + getByEmail: getByEmailService, edit: editUserService, delete: deleteUserService, };