From f37d50545d255ffeac060e4a5b4be4b345ec58f8 Mon Sep 17 00:00:00 2001 From: Jin Yi Date: Fri, 12 Sep 2025 19:41:01 +0900 Subject: [PATCH] chore: code review --- src/api/auth.ts | 76 +++++++++++++++++++ src/api/me.ts | 39 ---------- src/api/simpleAuth.ts | 36 --------- src/api/survey.ts | 2 +- src/api/whitelist.ts | 17 ----- .../onboarding/cloud/CloudClaimInviteView.vue | 26 +++---- .../cloud/CloudForgotPasswordView.vue | 10 ++- .../onboarding/cloud/CloudInviteEntryView.vue | 26 ++----- .../onboarding/cloud/CloudLoginView.vue | 16 ++-- .../onboarding/cloud/CloudSignupView.vue | 16 ++-- .../onboarding/cloud/CloudVerifyEmailView.vue | 2 +- src/router.ts | 16 ++-- src/router/cloudOnboardingGuard.ts | 2 +- 13 files changed, 133 insertions(+), 151 deletions(-) create mode 100644 src/api/auth.ts delete mode 100644 src/api/me.ts delete mode 100644 src/api/simpleAuth.ts delete mode 100644 src/api/whitelist.ts diff --git a/src/api/auth.ts b/src/api/auth.ts new file mode 100644 index 000000000..19d1c93d6 --- /dev/null +++ b/src/api/auth.ts @@ -0,0 +1,76 @@ +// Mock API for authentication and user onboarding +// TODO: Replace with actual API calls when backend is ready + +// ============ Types ============ +export interface UserOnboardingStatus { + surveyCompleted: boolean + whitelisted: boolean + email?: string +} + +export interface SimpleUser { + emailVerified: boolean + surveyCompleted: boolean + whitelisted: boolean +} + +// ============ User Status ============ +export async function getMe(): Promise { + // Simulate API delay + await new Promise((resolve) => setTimeout(resolve, 300)) + + // Check localStorage for mock onboarding status + const surveyCompleted = localStorage.getItem('surveyCompleted') + const whitelisted = localStorage.getItem('whitelisted') + const userEmail = localStorage.getItem('userEmail') + + // Return user status + return { + surveyCompleted: surveyCompleted === 'true', + whitelisted: whitelisted === 'true', + email: userEmail || undefined + } +} + +export function getAuthStatus(): SimpleUser { + const emailVerified = localStorage.getItem('emailVerified') + const surveyCompleted = localStorage.getItem('surveyCompleted') + const whitelisted = localStorage.getItem('whitelisted') + + return { + emailVerified: emailVerified === 'true', + surveyCompleted: surveyCompleted === 'true', + whitelisted: whitelisted === 'true' + } +} + +// ============ Auth Actions ============ +export function verifyEmail(): void { + localStorage.setItem('emailVerified', 'true') +} + +export function completeSurvey(): void { + localStorage.setItem('surveyCompleted', 'true') +} + +export function claimInvite(code: string): boolean { + const validCodes = ['test'] + if (validCodes.includes(code)) { + localStorage.setItem('whitelisted', 'true') + return true + } + return false +} + +// ============ Mock Data Helpers ============ +export function setMockUserData(data: Partial) { + if (data.surveyCompleted !== undefined) { + localStorage.setItem( + 'surveyCompleted', + data.surveyCompleted ? 'true' : 'false' + ) + } + if (data.whitelisted !== undefined) { + localStorage.setItem('whitelisted', data.whitelisted ? 'true' : 'false') + } +} diff --git a/src/api/me.ts b/src/api/me.ts deleted file mode 100644 index b8be6724b..000000000 --- a/src/api/me.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Mock API for user onboarding status -// TODO: Replace with actual API calls when backend is ready - -export interface UserOnboardingStatus { - surveyTaken: boolean - whitelisted: boolean - email?: string - userId?: string -} - -export async function getMe(): Promise { - // Simulate API delay - await new Promise((resolve) => setTimeout(resolve, 300)) - - // Check localStorage for mock onboarding status - // These values are null if not set (user hasn't completed the step) - const surveyCompleted = localStorage.getItem('surveyCompleted') - const whitelisted = localStorage.getItem('whitelisted') - const userEmail = localStorage.getItem('userEmail') - - // Return user status - // If key doesn't exist (null), treat as false - return { - surveyTaken: surveyCompleted === 'true', - whitelisted: whitelisted === 'true', - email: userEmail || undefined, - userId: userEmail || undefined - } -} - -// Helper function to update mock data (for testing) -export function setMockUserData(data: Partial) { - if (data.surveyTaken !== undefined) { - localStorage.setItem('surveyCompleted', data.surveyTaken ? 'true' : 'false') - } - if (data.whitelisted !== undefined) { - localStorage.setItem('whitelisted', data.whitelisted ? 'true' : 'false') - } -} diff --git a/src/api/simpleAuth.ts b/src/api/simpleAuth.ts deleted file mode 100644 index e16be9ebb..000000000 --- a/src/api/simpleAuth.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Simple mock auth using localStorage -export interface SimpleUser { - emailVerified: boolean - surveyCompleted: boolean - whitelisted: boolean -} - -export function getAuthStatus(): SimpleUser { - const emailVerified = localStorage.getItem('emailVerified') - const surveyCompleted = localStorage.getItem('surveyCompleted') - const whitelisted = localStorage.getItem('whitelisted') - - return { - emailVerified: emailVerified === null ? false : emailVerified === 'true', - surveyCompleted: - surveyCompleted === null ? false : surveyCompleted === 'true', - whitelisted: whitelisted === null ? false : whitelisted === 'true' - } -} - -export function verifyEmail(): void { - localStorage.setItem('emailVerified', 'true') -} - -export function completeSurvey(): void { - localStorage.setItem('surveyCompleted', 'true') -} - -export function claimInvite(code: string): boolean { - const validCodes = ['test'] - if (validCodes.includes(code)) { - localStorage.setItem('whitelisted', 'true') - return true - } - return false -} diff --git a/src/api/survey.ts b/src/api/survey.ts index ee1e5632a..b3838b09f 100644 --- a/src/api/survey.ts +++ b/src/api/survey.ts @@ -1,6 +1,6 @@ // Mock API for survey submission // TODO: Replace with actual API calls when backend is ready -import { completeSurvey } from './simpleAuth' +import { completeSurvey } from './auth' export interface SurveyPayload { useCase?: string diff --git a/src/api/whitelist.ts b/src/api/whitelist.ts deleted file mode 100644 index 22d64198c..000000000 --- a/src/api/whitelist.ts +++ /dev/null @@ -1,17 +0,0 @@ -// Whitelist management functions - -export function isWhitelisted(): boolean { - return localStorage.getItem('whitelisted') === 'true' -} - -export function setWhitelisted(value: boolean): void { - localStorage.setItem('whitelisted', value ? 'true' : 'false') -} - -export function addToWhitelist(): void { - setWhitelisted(true) -} - -export function removeFromWhitelist(): void { - setWhitelisted(false) -} diff --git a/src/platform/onboarding/cloud/CloudClaimInviteView.vue b/src/platform/onboarding/cloud/CloudClaimInviteView.vue index 2509df6da..eeeac0bf8 100644 --- a/src/platform/onboarding/cloud/CloudClaimInviteView.vue +++ b/src/platform/onboarding/cloud/CloudClaimInviteView.vue @@ -1,8 +1,15 @@ @@ -10,7 +17,7 @@ import { onMounted } from 'vue' import { useRoute, useRouter } from 'vue-router' -import { claimInvite } from '@/api/simpleAuth' +import { claimInvite } from '@/api/auth' const route = useRoute() const router = useRouter() @@ -63,14 +70,3 @@ onMounted(async () => { } }) - - diff --git a/src/platform/onboarding/cloud/CloudForgotPasswordView.vue b/src/platform/onboarding/cloud/CloudForgotPasswordView.vue index 366f970cd..0e912e012 100644 --- a/src/platform/onboarding/cloud/CloudForgotPasswordView.vue +++ b/src/platform/onboarding/cloud/CloudForgotPasswordView.vue @@ -1,3 +1,4 @@ +