diff --git a/src/lib/server/api/common/types/oauth-user.ts b/src/lib/server/api/common/types/oauth.ts similarity index 73% rename from src/lib/server/api/common/types/oauth-user.ts rename to src/lib/server/api/common/types/oauth.ts index 9d14b0c..60e8bbd 100644 --- a/src/lib/server/api/common/types/oauth-user.ts +++ b/src/lib/server/api/common/types/oauth.ts @@ -6,4 +6,6 @@ export type OAuthUser = { username: string; email?: string; email_verified?: boolean; -} \ No newline at end of file +} + +export type OAuthProviders = 'github' | 'google' | 'apple' \ No newline at end of file diff --git a/src/lib/server/api/controllers/oauth.controller.ts b/src/lib/server/api/controllers/oauth.controller.ts index ab8edb0..6a542d0 100644 --- a/src/lib/server/api/controllers/oauth.controller.ts +++ b/src/lib/server/api/controllers/oauth.controller.ts @@ -7,7 +7,7 @@ import { OAuth2RequestError } from 'arctic' import { getCookie, setCookie } from 'hono/cookie' import { TimeSpan } from 'oslo' import { inject, injectable } from 'tsyringe' -import type {OAuthUser} from "$lib/server/api/common/types/oauth-user"; +import type {OAuthUser} from "$lib/server/api/common/types/oauth"; @injectable() export class OAuthController extends Controller { @@ -41,7 +41,7 @@ export class OAuthController extends Controller { const oAuthUser: OAuthUser = { sub: `${githubUser.id}`, username: githubUser.login, - email: null + email: undefined } const userId = await this.oauthService.handleOAuthUser(oAuthUser, 'github') diff --git a/src/lib/server/api/services/oauth.service.ts b/src/lib/server/api/services/oauth.service.ts index 8dae4f9..ef563c6 100644 --- a/src/lib/server/api/services/oauth.service.ts +++ b/src/lib/server/api/services/oauth.service.ts @@ -1,7 +1,7 @@ import { inject, injectable } from 'tsyringe' import { FederatedIdentityRepository } from '../repositories/federated_identity.repository' import { UsersService } from './users.service' -import type {OAuthUser} from "$lib/server/api/common/types/oauth-user"; +import type {OAuthUser, OAuthProviders} from "$lib/server/api/common/types/oauth"; @injectable() export class OAuthService { @@ -10,7 +10,7 @@ export class OAuthService { @inject(UsersService) private readonly usersService: UsersService, ) {} - async handleOAuthUser(oAuthUser: OAuthUser, oauthProvider: string) { + async handleOAuthUser(oAuthUser: OAuthUser, oauthProvider: OAuthProviders) { const federatedUser = await this.federatedIdentityRepository.findOneByFederatedUserIdAndProvider(oAuthUser.sub, oauthProvider) if (federatedUser) { diff --git a/src/lib/server/api/services/users.service.ts b/src/lib/server/api/services/users.service.ts index 8298793..172908f 100644 --- a/src/lib/server/api/services/users.service.ts +++ b/src/lib/server/api/services/users.service.ts @@ -10,7 +10,7 @@ import { type UpdateUser, UsersRepository } from '../repositories/users.reposito import { CollectionsService } from './collections.service' import { DrizzleService } from './drizzle.service' import { WishlistsService } from './wishlists.service' -import type {OAuthUser} from "$lib/server/api/common/types/oauth-user"; +import type {OAuthUser} from "$lib/server/api/common/types/oauth"; @injectable() export class UsersService {