refactor: enhance error handling in credit balance retrieval
This commit is contained in:
parent
d1928575b3
commit
bade6b620e
@ -9,8 +9,8 @@ import { userActionClient } from '@/lib/safe-action';
|
||||
*/
|
||||
export const getCreditBalanceAction = userActionClient.action(
|
||||
async ({ ctx }) => {
|
||||
const user = (ctx as { user: User }).user;
|
||||
const credits = await getUserCredits(user.id);
|
||||
const currentUser = (ctx as { user: User }).user;
|
||||
const credits = await getUserCredits(currentUser.id);
|
||||
return { success: true, credits };
|
||||
}
|
||||
);
|
||||
|
@ -27,7 +27,6 @@ export const actionClient = createSafeActionClient({
|
||||
// -----------------------------------------------------------------------------
|
||||
export const userActionClient = actionClient.use(async ({ next }) => {
|
||||
const session = await getSession();
|
||||
|
||||
if (!session?.user) {
|
||||
return {
|
||||
success: false,
|
||||
@ -45,6 +44,7 @@ export const adminActionClient = userActionClient.use(async ({ next, ctx }) => {
|
||||
const user = (ctx as { user: User }).user;
|
||||
const isDemo = isDemoWebsite();
|
||||
const isAdmin = user.role === 'admin';
|
||||
|
||||
// If this is a demo website and user is not an admin, allow the request
|
||||
if (!isAdmin && !isDemo) {
|
||||
return {
|
||||
|
@ -76,7 +76,7 @@ export const useCreditsStore = create<CreditsState>((set, get) => ({
|
||||
|
||||
try {
|
||||
const result = await getCreditBalanceAction();
|
||||
if (result?.data?.success) {
|
||||
if (result?.data?.success && result.data.credits !== undefined) {
|
||||
const newBalance = result.data.credits || 0;
|
||||
console.log('fetchCredits, set new balance', newBalance);
|
||||
set({
|
||||
@ -88,7 +88,8 @@ export const useCreditsStore = create<CreditsState>((set, get) => ({
|
||||
} else {
|
||||
console.warn('fetchCredits, failed to fetch credit balance', result);
|
||||
set({
|
||||
error: result?.data?.error || 'Failed to fetch credit balance',
|
||||
error:
|
||||
(result?.data as any)?.error || 'Failed to fetch credit balance',
|
||||
isLoading: false,
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user