From aea16ad35a63ccbf9150e65198ff7c95a3f2195b Mon Sep 17 00:00:00 2001 From: Rafi Arrafif Date: Fri, 29 May 2026 15:42:02 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=A6=96=20fix:=20update=20payload=20to=20m?= =?UTF-8?q?atch=20new=20schema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/auth/auth.types.ts | 4 +-- .../services/http/githubCallback.service.ts | 26 +++++++++---------- .../internal/OAuthUserProvision.service.ts | 1 - 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/modules/auth/auth.types.ts b/src/modules/auth/auth.types.ts index 50f74e7..ebcc0aa 100644 --- a/src/modules/auth/auth.types.ts +++ b/src/modules/auth/auth.types.ts @@ -16,8 +16,8 @@ interface GithubUserData { login: string; id: number; node_id: string; - avatar_url: string; - gravatar_id: string; + avatar_url?: string; + gravatar_id?: string; url: string; html_url: string; followers_url: string; diff --git a/src/modules/auth/services/http/githubCallback.service.ts b/src/modules/auth/services/http/githubCallback.service.ts index 1c19e92..3f74535 100644 --- a/src/modules/auth/services/http/githubCallback.service.ts +++ b/src/modules/auth/services/http/githubCallback.service.ts @@ -1,3 +1,4 @@ +import { email } from "zod"; import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder"; import { UserHeaderInformation } from "../../../../helpers/http/userHeader/getUserHeaderInformation/types"; import { GithubCallbackUserData } from "../../auth.types"; @@ -6,7 +7,7 @@ import { OAuthUserProvisionService } from "../internal/OAuthUserProvision.servic export const githubCallbackService = async ( query: { code: string; callbackURI: string }, - userHeaderInfo: UserHeaderInformation + userHeaderInfo: UserHeaderInformation, ) => { try { // Initialize GitHub provider @@ -37,21 +38,18 @@ export const githubCallbackService = async ( // Provision or authenticate the user in the system return await OAuthUserProvisionService( { - provider: "github", - providerId: userPayload.user_data.id.toString(), - providerToken: accessToken, - providerPayload: userPayload, - email: - userPayload.user_email.find((email) => email.primary === true) - ?.email || userPayload.user_email[0].email, - username: `git_${userPayload.user_data.id}`, - name: userPayload.user_data.name ?? userPayload.user_data.login, + fullname: userPayload.user_data.name || userPayload.user_data.login, + username: `gh_${userPayload.user_data.id}`, + email: userPayload.user_email.find((email) => email.primary)?.email || userPayload.user_email[0]?.email, avatar: userPayload.user_data.avatar_url, - password: Math.random() - .toString(36) - .slice(2, 16), + bio: userPayload.user_data.bio || undefined, + oauthProvider: { + providerName: "github", + sub: userPayload.user_data.id.toString(), + token: accessToken, + }, }, - userHeaderInfo + userHeaderInfo, ); } catch (error) { ErrorForwarder(error, 500, "Authentication service error"); diff --git a/src/modules/auth/services/internal/OAuthUserProvision.service.ts b/src/modules/auth/services/internal/OAuthUserProvision.service.ts index f1ad78e..181f89c 100644 --- a/src/modules/auth/services/internal/OAuthUserProvision.service.ts +++ b/src/modules/auth/services/internal/OAuthUserProvision.service.ts @@ -2,7 +2,6 @@ import { UserHeaderInformation } from "../../../../helpers/http/userHeader/getUs import { createUserSessionService } from "../../../userSession/services/createUserSession.service"; import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder"; import { createUserViaOauth } from "../../../user/user.types"; -import { createUserService } from "../../../user/services/internal/createUser.service"; import { AppError } from "../../../../helpers/error/instances/app"; import { findAuthIdentityByEmailAndProviderRepository } from "../../repositories/READ/findAuthIdentityByEmailAndProvider.repository"; import { createUserWithOAuthCredentialsRepository } from "../../repositories/WRITE/createUserWithOAuthCredentials.repository";