add PayoutMethod, getReferralPayments,

add translates
This commit is contained in:
smanylov
2026-02-24 17:22:01 +07:00
parent 97b24cfadf
commit 454ec6f865
13 changed files with 429 additions and 83 deletions
+129 -8
View File
@@ -1,7 +1,8 @@
'use server'
import { getSessionData } from '@/app/actions/session';
import { API_BASE_URL } from '@/app/actions/definitions';
import { API_BASE_URL, bankCardFormSchema } from '@/app/actions/definitions';
import { FormState } from '@/app/actions/auth';
export async function fetchReferralsLevels() {
const token = await getSessionData('token');
@@ -109,13 +110,6 @@ export async function fetchReferralInvitees() {
if (response.ok) {
let parsed = await response.json();
console.log({
action: 'invitees',
token: token,
pageSize: 10,
pageNumber: 0
})
console.log(parsed);
if (parsed.message_code === 0) {
return parsed.message_body;
@@ -178,4 +172,131 @@ export async function referralRefill() {
error: error
}
}
}
export async function getUserPayments() {
const token = await getSessionData('token');
console.log('getUserPayments');
try {
const response = await fetch(`${API_BASE_URL}/api/payouts/requests`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${token}`,
}
});
if (response.ok) {
const parsed = await response.json();
console.log(parsed);
return parsed;
} else {
return null
}
} catch (error) {
return null
}
}
export type PayoutMethodFormState = {
previousState: {
bankCard?: string | undefined;
paymentsType?: 'bank-card' | 'bank-transfer' | 'on-account-balance';
} | undefined,
error: Record<string, string> | null
};
export async function addPayoutMethod(
state: PayoutMethodFormState | undefined,
formData: FormData,
): Promise<PayoutMethodFormState> {
const token = await getSessionData('token');
const bankCard = formData.get('bankCard') as string || '';
const paymentsType = formData.get('paymentsType') as 'bank-card' | 'bank-transfer' | 'on-account-balance';
const validatedFields = bankCardFormSchema.safeParse({
bankCard
});
if (!validatedFields.success) {
const errors: Record<string, string> = {}
JSON.parse(validatedFields.error.message).forEach((obj: {
message: string,
path: string
}) => {
if (errors[obj.path[0]]) {
errors[obj.path[0]] = `${errors[obj.path[0]]} ${obj.message}`;
} else {
errors[obj.path[0]] = obj.message;
}
});
return {
previousState: {
bankCard
},
error: errors
};
}
/* return {
previousState: {
bankCard,
paymentsType
},
error: null
}; */
try {
const { bankCard } = validatedFields.data;
const response = await fetch(`${API_BASE_URL}/api/payouts/payout-method/card`, {
method: 'POST',
body: JSON.stringify({
"cardNumber": bankCard.replaceAll(' ', '')
}),
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${token}`,
}
});
console.log(response);
if (response.ok) {
const parsed = await response.json();
console.log(parsed);
return {
previousState: {
bankCard,
paymentsType
},
error: null
};
} else {
throw 'error-save';
}
} catch (error: unknown) {
const errors: Record<string, string> = {};
errors['server'] = 'error-save'
if (error) {
const typedError = error as any;
}
return {
previousState: {
bankCard,
paymentsType
},
error: errors
};
}
}