fix(dashboard): wire turns/transactions to real endpoints + fix uuid cookie
- Login now overwrites the uuid cookie with the real user uuid (was the OTP uuid), so server-side profile/dashboard fetches resolve. - getMyAppointments → /api/v1/appointments/user (patient's own bookings; /my/appointments is role-scoped and empty for plain users), read from the double-nested data.data. - getMyPayments → /api/v1/my/payments (new endpoint), read paginated data + meta.totalPages. - Drop the userId path param (both endpoints derive the user from token). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -26,12 +26,6 @@ function Transactions({ user, loading }) {
|
||||
|
||||
const parsedData = safeJsonParse(userInfo);
|
||||
if (!parsedData) { setIsLoading(false); return; }
|
||||
const userId = parsedData.id || parsedData.uuid;
|
||||
|
||||
if (!userId) {
|
||||
setIsLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
const params = {
|
||||
page,
|
||||
@@ -42,13 +36,14 @@ function Transactions({ user, loading }) {
|
||||
params.status = status;
|
||||
}
|
||||
|
||||
const response = await request.getMyPayments(userId, params);
|
||||
const response = await request.getMyPayments(params);
|
||||
|
||||
if (response?.data) {
|
||||
if (Array.isArray(response?.data)) {
|
||||
setPayments(response.data);
|
||||
if (response.page) {
|
||||
setTotalPages(response.page.totalPages);
|
||||
}
|
||||
setTotalPages(response?.meta?.totalPages || 1);
|
||||
} else {
|
||||
setPayments([]);
|
||||
setTotalPages(1);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching payments:", error);
|
||||
|
||||
@@ -25,14 +25,6 @@ function Turns({ user, setIsTurnsDetails, loading }) {
|
||||
return;
|
||||
}
|
||||
|
||||
const parsedData = JSON.parse(userInfo);
|
||||
const userId = parsedData.id || parsedData.uuid;
|
||||
|
||||
if (!userId) {
|
||||
setIsLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
const params = {
|
||||
page,
|
||||
limit: 10,
|
||||
@@ -42,19 +34,15 @@ function Turns({ user, setIsTurnsDetails, loading }) {
|
||||
params.status = status;
|
||||
}
|
||||
|
||||
const response = await request.getMyAppointments(userId, params);
|
||||
const response = await request.getMyAppointments(params);
|
||||
const items = response?.data?.data;
|
||||
|
||||
if (response?.data) {
|
||||
setAppointments(response.data);
|
||||
if (response.page) {
|
||||
setTotalPages(response.page.totalPages || 1);
|
||||
} else {
|
||||
setTotalPages(1);
|
||||
}
|
||||
if (Array.isArray(items)) {
|
||||
setAppointments(items);
|
||||
} else {
|
||||
setAppointments([]);
|
||||
setTotalPages(1);
|
||||
}
|
||||
setTotalPages(1);
|
||||
} catch (error) {
|
||||
console.error("Error fetching appointments:", error);
|
||||
} finally {
|
||||
|
||||
@@ -88,6 +88,8 @@ function SendReq({
|
||||
if (profile?.uuid) {
|
||||
const userInfo = { ...profile, username: profile.mobile_number };
|
||||
Cookies.set("userInfo", JSON.stringify(userInfo), cookieOptions);
|
||||
// overwrite the OTP uuid set in handleSetCookie with the real user uuid
|
||||
Cookies.set("uuid", profile.uuid, cookieOptions);
|
||||
|
||||
// اگر در صفحه appointment هستیم، به مرحله 3 (Detail) میرویم
|
||||
if (setStep) {
|
||||
|
||||
Reference in New Issue
Block a user