feature/adapt-to-new-database #34
@ -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;
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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";
|
||||
|
||||
Reference in New Issue
Block a user