обавлена автоматическая регистрация пользователя при первом запуске с начальным балансом 50 токенов
This commit is contained in:
parent
0808f38151
commit
6acc9fb65c
@ -39,7 +39,9 @@ const AppContent: React.FC = () => {
|
||||
|
||||
useEffect(() => {
|
||||
// Инициализируем ID пользователя при запуске приложения
|
||||
initializeUserId();
|
||||
initializeUserId().catch(error => {
|
||||
console.error('Ошибка при инициализации пользователя:', error);
|
||||
});
|
||||
|
||||
// Стабилизируем окно и отключаем вертикальные свайпы
|
||||
if (window.Telegram?.WebApp) {
|
||||
|
||||
@ -17,13 +17,43 @@ export const isTelegramWebAppAvailable = (): boolean => {
|
||||
);
|
||||
};
|
||||
|
||||
// Импортируем apiService для регистрации пользователя
|
||||
import apiService from '../services/api';
|
||||
|
||||
/**
|
||||
* Инициализация ID пользователя при старте приложения
|
||||
*/
|
||||
export const initializeUserId = (): void => {
|
||||
export const initializeUserId = async (): Promise<void> => {
|
||||
if (isTelegramWebAppAvailable() && window.Telegram?.WebApp?.initDataUnsafe?.user?.id) {
|
||||
CURRENT_USER_ID = window.Telegram.WebApp.initDataUnsafe.user.id;
|
||||
console.log('Инициализирован ID пользователя Telegram:', CURRENT_USER_ID);
|
||||
|
||||
// Проверяем, зарегистрирован ли пользователь
|
||||
try {
|
||||
// Пытаемся получить информацию о пользователе
|
||||
await apiService.getUserInfo(CURRENT_USER_ID);
|
||||
console.log('Пользователь уже зарегистрирован');
|
||||
} catch (error) {
|
||||
// Если пользователь не найден, регистрируем его
|
||||
console.log('Пользователь не найден, выполняем регистрацию...');
|
||||
|
||||
const userInfo = getUserInfo();
|
||||
// Используем ID пользователя в качестве chat_id, так как chat_instance недоступен
|
||||
const chatId = CURRENT_USER_ID;
|
||||
|
||||
try {
|
||||
// Регистрируем пользователя с начальным балансом 50
|
||||
await apiService.registerUser(
|
||||
CURRENT_USER_ID,
|
||||
userInfo.username || `user_${CURRENT_USER_ID}`,
|
||||
chatId,
|
||||
50
|
||||
);
|
||||
console.log('Пользователь успешно зарегистрирован');
|
||||
} catch (registerError) {
|
||||
console.error('Ошибка при регистрации пользователя:', registerError);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log('Используется тестовый ID пользователя:', DEFAULT_USER_ID);
|
||||
}
|
||||
|
||||
@ -54,6 +54,34 @@ class GenerationError extends Error {
|
||||
let mockBalance = 50; // Начальное значение из MOCK_USER
|
||||
|
||||
const apiService = {
|
||||
// Метод для регистрации пользователя
|
||||
async registerUser(userId: number, username: string, chatId: number, balance: number = 50): Promise<any> {
|
||||
try {
|
||||
const response = await fetch(`${API_BASE_URL}/register`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'accept': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
user_id: userId,
|
||||
username: username,
|
||||
chat_id: chatId,
|
||||
balance: balance
|
||||
})
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to register user');
|
||||
}
|
||||
|
||||
return await response.json();
|
||||
} catch (error) {
|
||||
console.error('Error registering user:', error);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
|
||||
// Метод для получения информации о пользователе
|
||||
async getUserInfo(userId: number = getCurrentUserId()): Promise<any> {
|
||||
try {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user