36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { Context } from "elysia";
|
|
import { createUserSessionService } from "../services/createUserSession.service";
|
|
import { getUserHeaderInformation } from "../../../helpers/cookies/userHeader/getUserHeaderInformation";
|
|
import { mainErrorHandler } from "../../../helpers/error/handler";
|
|
import {
|
|
returnErrorResponse,
|
|
returnWriteResponse,
|
|
} from "../../../helpers/callback/httpResponse";
|
|
|
|
export const createUserSessionRole = async (
|
|
ctx: Context & { body: { userId?: string } }
|
|
) => {
|
|
// Validate request body
|
|
if (!ctx.body?.userId) {
|
|
return returnErrorResponse(ctx.set, 400, "User ID is required");
|
|
}
|
|
|
|
// Get user device and browser information
|
|
const userHeaderData = getUserHeaderInformation(ctx);
|
|
|
|
try {
|
|
const newUserSession = await createUserSessionService({
|
|
userId: ctx.body.userId,
|
|
userHeaderInformation: userHeaderData,
|
|
});
|
|
return returnWriteResponse(
|
|
ctx.set,
|
|
201,
|
|
"User session created",
|
|
newUserSession
|
|
);
|
|
} catch (error) {
|
|
return mainErrorHandler(ctx.set, error);
|
|
}
|
|
};
|