fix: 自評去識別化
This commit is contained in:
@@ -33,7 +33,6 @@ import {
|
||||
clearGuestSelfAssessmentDraft,
|
||||
readGuestSelfAssessmentDraft,
|
||||
saveGuestSelfAssessmentDraft,
|
||||
type GuestSelfAssessmentDraft,
|
||||
} from "@/utils/guest-self-assessment";
|
||||
import { getApiErrorMessage, getApiErrorStatus } from "@/utils/api-error";
|
||||
import { calculateProvisionalRiskLevel } from "@/utils/self-assessment";
|
||||
@@ -154,23 +153,6 @@ function applySelfAssessmentToStore(
|
||||
};
|
||||
}
|
||||
|
||||
function toProfileRequest(
|
||||
profile: GuestSelfAssessmentDraft["profile"],
|
||||
): ProfileRequest {
|
||||
return {
|
||||
name: profile.name,
|
||||
birthday: profile.birthday,
|
||||
gender: profile.gender,
|
||||
heightCm: profile.heightCm,
|
||||
weightKg: profile.weightKg,
|
||||
email: profile.email,
|
||||
emergencyContact: profile.emergencyContact,
|
||||
emergencyPhone: profile.emergencyPhone,
|
||||
consent: profile.consent,
|
||||
consentVersion: profile.consentVersion,
|
||||
};
|
||||
}
|
||||
|
||||
function toProfileRequestFromStore(profile: UserProfile): ProfileRequest {
|
||||
if (profile.gender !== "男" && profile.gender !== "女") {
|
||||
throw new Error("請先完成性別資料");
|
||||
@@ -543,10 +525,7 @@ export const useAppStore = defineStore("app", () => {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 將登入/註冊後的訪客草稿依序正式保存。
|
||||
* Profile 失敗時不會呼叫自評;任一步驟失敗都保留草稿與冪等鍵。
|
||||
*/
|
||||
/** 將登入/註冊後的匿名訪客自評正式保存;失敗時保留草稿與冪等鍵。 */
|
||||
async function persistGuestSelfAssessment() {
|
||||
const draft = readGuestSelfAssessmentDraft();
|
||||
if (!draft) {
|
||||
@@ -563,33 +542,25 @@ export const useAppStore = defineStore("app", () => {
|
||||
}
|
||||
|
||||
if (USE_MOCK) {
|
||||
const profile: Profile = {
|
||||
...toProfileRequest(draft.profile),
|
||||
phone: draft.profile.phone,
|
||||
updatedAt: new Date().toISOString(),
|
||||
};
|
||||
const assessment: SelfAssessmentResponse = {
|
||||
...draft.assessment,
|
||||
assessmentId: `mock-${idempotencyKey}`,
|
||||
riskLevel: draft.provisionalRiskLevel,
|
||||
completedAt: new Date().toISOString(),
|
||||
};
|
||||
userProfile.value = applyProfileToStore(profile);
|
||||
setSelfAssessment(assessment);
|
||||
clearGuestSelfAssessmentDraft();
|
||||
return { profile, assessment };
|
||||
return assessment;
|
||||
}
|
||||
|
||||
const profile = await apiUpdateProfile(toProfileRequest(draft.profile));
|
||||
const assessment = await createSelfAssessment(
|
||||
draft.assessment,
|
||||
idempotencyKey,
|
||||
);
|
||||
|
||||
userProfile.value = applyProfileToStore(profile);
|
||||
setSelfAssessment(assessment);
|
||||
clearGuestSelfAssessmentDraft();
|
||||
return { profile, assessment };
|
||||
return assessment;
|
||||
}
|
||||
|
||||
function registerAppointment(appointmentId: string) {
|
||||
|
||||
Reference in New Issue
Block a user