обавлена автоматическая регистрация пользователя при первом запуске с начальным балансом 50 токенов
This commit is contained in:
parent
0808f38151
commit
6acc9fb65c
@ -39,7 +39,9 @@ const AppContent: React.FC = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// Инициализируем ID пользователя при запуске приложения
|
// Инициализируем ID пользователя при запуске приложения
|
||||||
initializeUserId();
|
initializeUserId().catch(error => {
|
||||||
|
console.error('Ошибка при инициализации пользователя:', error);
|
||||||
|
});
|
||||||
|
|
||||||
// Стабилизируем окно и отключаем вертикальные свайпы
|
// Стабилизируем окно и отключаем вертикальные свайпы
|
||||||
if (window.Telegram?.WebApp) {
|
if (window.Telegram?.WebApp) {
|
||||||
|
|||||||
@ -17,13 +17,43 @@ export const isTelegramWebAppAvailable = (): boolean => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Импортируем apiService для регистрации пользователя
|
||||||
|
import apiService from '../services/api';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Инициализация ID пользователя при старте приложения
|
* Инициализация ID пользователя при старте приложения
|
||||||
*/
|
*/
|
||||||
export const initializeUserId = (): void => {
|
export const initializeUserId = async (): Promise<void> => {
|
||||||
if (isTelegramWebAppAvailable() && window.Telegram?.WebApp?.initDataUnsafe?.user?.id) {
|
if (isTelegramWebAppAvailable() && window.Telegram?.WebApp?.initDataUnsafe?.user?.id) {
|
||||||
CURRENT_USER_ID = window.Telegram.WebApp.initDataUnsafe.user.id;
|
CURRENT_USER_ID = window.Telegram.WebApp.initDataUnsafe.user.id;
|
||||||
console.log('Инициализирован ID пользователя Telegram:', CURRENT_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 {
|
} else {
|
||||||
console.log('Используется тестовый ID пользователя:', DEFAULT_USER_ID);
|
console.log('Используется тестовый ID пользователя:', DEFAULT_USER_ID);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,6 +54,34 @@ class GenerationError extends Error {
|
|||||||
let mockBalance = 50; // Начальное значение из MOCK_USER
|
let mockBalance = 50; // Начальное значение из MOCK_USER
|
||||||
|
|
||||||
const apiService = {
|
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> {
|
async getUserInfo(userId: number = getCurrentUserId()): Promise<any> {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user