🧑‍💻 (dev) change register flow

Change the user creation flow in the register so that it must go through the
main create user service first instead of directly accessing the create user
repo.
This commit is contained in:
Rafi Arrafif
2025-10-11 02:00:19 +07:00
parent 5c31ba7340
commit 41b6807a36
3 changed files with 19 additions and 10 deletions

View File

@ -3,12 +3,17 @@ import { createUserViaRegisterSchema } from "../schemas/createUserViaRegister.sc
import { mainErrorHandler } from "../../../helpers/error/handler"; import { mainErrorHandler } from "../../../helpers/error/handler";
import { returnWriteResponse } from "../../../helpers/callback/httpResponse"; import { returnWriteResponse } from "../../../helpers/callback/httpResponse";
import { createUserViaRegisterService } from "../services/http/createUserViaRegister.service"; import { createUserViaRegisterService } from "../services/http/createUserViaRegister.service";
import { getUserHeaderInformation } from "../../../helpers/http/userHeader/getUserHeaderInformation";
export const createUserViaRegisterController = async (ctx: Context) => { export const createUserViaRegisterController = async (ctx: Context) => {
try { try {
const validate = createUserViaRegisterSchema.parse(ctx.body); const validate = createUserViaRegisterSchema.parse(ctx.body);
const createUser = await createUserViaRegisterService(validate); const userHeaderInfo = getUserHeaderInformation(ctx);
const createUser = await createUserViaRegisterService(
validate,
userHeaderInfo
);
return returnWriteResponse( return returnWriteResponse(
ctx.set, ctx.set,
201, 201,

View File

@ -1,18 +1,16 @@
import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder"; import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder";
import { hashPassword } from "../../../../helpers/security/password/hash"; import { UserHeaderInformation } from "../../../../helpers/http/userHeader/getUserHeaderInformation/types";
import { createUserViaRegisterRepository } from "../../repositories/create/createUserViaRegister.repository"; import { createUserSessionService } from "../../../userSession/services/createUserSession.service";
import { createUserViaRegisterInput } from "../../user.types"; import { createUserViaRegisterInput } from "../../user.types";
import { createUserService } from "../internal/createUser.service";
export const createUserViaRegisterService = async ( export const createUserViaRegisterService = async (
payload: createUserViaRegisterInput payload: createUserViaRegisterInput,
userHeaderInfo: UserHeaderInformation
) => { ) => {
try { try {
const hashedPassword = await hashPassword(payload.password); const createdUser = await createUserService(payload);
return createUserSessionService(createdUser.id, userHeaderInfo);
return createUserViaRegisterRepository({
...payload,
password: hashedPassword,
});
} catch (error) { } catch (error) {
ErrorForwarder(error); ErrorForwarder(error);
} }

View File

@ -0,0 +1,6 @@
import Elysia from "elysia";
export const userSessionModule = new Elysia({ prefix: "/sessions" }).get(
"/",
() => "User Session Module is working!"
);