complete login with password controller and services

This commit is contained in:
rafiarrafif
2025-05-11 19:50:45 +07:00
parent 7adda16a6b
commit ed8840ee1f
7 changed files with 50 additions and 6 deletions

View File

@ -2,9 +2,14 @@ import bcrypt from "bcrypt";
import { findUserByEmailOrUsernameService } from "../../user/services/findUserByEmailOrUsername.service";
import { LoginWithPasswordRequest } from "../auth.types";
import { AppError } from "../../../helpers/error/instances/app";
import { UserHeaderInformation } from "../../../helpers/cookies/userHeader/getUserHeaderInformation/types";
import { createUserSessionService } from "../../userSession/services/createUserSession.service";
import { jwtEncode } from "../../../helpers/cookies/jwt/encode";
import { returnReadResponse } from "../../../helpers/callback/httpResponse";
export const loginWithPasswordService = async (
request: LoginWithPasswordRequest
request: LoginWithPasswordRequest,
userHeaderInfo: UserHeaderInformation
) => {
try {
// search for user data using an identifier (username or email)
@ -14,7 +19,14 @@ export const loginWithPasswordService = async (
if (!(await bcrypt.compare(request.password, userData.password)))
throw new AppError(401, "Password incorrect");
return userData;
const userSession = await createUserSessionService({
userId: userData.id,
userHeaderInformation: userHeaderInfo,
});
const jwtToken = jwtEncode(userSession);
return jwtToken;
} catch (error) {
throw error;
}