🚩 create user session when provision

create a user session after provisioning authentication if the account has been created previously.
This commit is contained in:
Rafi Arrafif
2025-08-12 23:59:06 +07:00
parent 27769773af
commit 6bdd5b6468
6 changed files with 66 additions and 13 deletions

View File

@ -1,5 +1,8 @@
import { User } from "@prisma/client";
import { UserHeaderInformation } from "../../../../helpers/http/userHeader/getUserHeaderInformation/types";
import { findUserService } from "../../../user/services/internal/findUser.service";
import { createUserSessionService } from "../../../userSession/services/createUserSession.service";
import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder";
export const OAuthUserProvisionService = async (
payload: {
@ -20,16 +23,20 @@ export const OAuthUserProvisionService = async (
*
* This is just example!!
*/
const providerId = `${payload.providerName}_${payload.openId}`;
const findUserResult = await findUserService({
identifier: providerId,
queryTarget: "providerId",
options: { verbosity: "exist" },
});
try {
const providerId = `${payload.providerName}_${payload.openId}`;
const findUserResult = (await findUserService({
identifier: providerId,
queryTarget: "providerId",
options: { verbosity: "full" },
})) as User;
if (findUserResult) {
return "Already Created";
} else {
return "Not Found";
if (findUserResult) {
return await createUserSessionService(findUserResult.id, userHeaderInfo);
} else {
return "Not Found";
}
} catch (error) {
ErrorForwarder(error);
}
};