Files
DLE/frontend/src/services/analyticsService.js
2026-03-01 22:03:48 +03:00

320 lines
10 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (c) 2024-2026 Тарабанов Александр Викторович
* All rights reserved.
*
* This software is proprietary and confidential.
* Unauthorized copying, modification, or distribution is prohibited.
*
* For licensing inquiries: info@hb3-accelerator.com
* Website: https://hb3-accelerator.com
* GitHub: https://github.com/VC-HB3-Accelerator
*/
// Сервис для работы с аналитикой DLE
import axios from 'axios';
/**
* Получает общую статистику DLE
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Общая статистика
*/
export const getDLEStats = async (dleAddress) => {
try {
const response = await axios.post('/dle-analytics/get-dle-stats', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении статистики DLE:', error);
throw error;
}
};
/**
* Получает статистику предложений
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Статистика предложений
*/
export const getProposalsStats = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-proposals-stats', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении статистики предложений:', error);
throw error;
}
};
/**
* Получает статистику токенов
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Статистика токенов
*/
export const getTokenStats = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-token-stats', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении статистики токенов:', error);
throw error;
}
};
/**
* Получает статистику модулей
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Статистика модулей
*/
export const getModulesStats = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-modules-stats', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении статистики модулей:', error);
throw error;
}
};
/**
* Получает статистику голосования
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Статистика голосования
*/
export const getVotingStats = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-voting-stats', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении статистики голосования:', error);
throw error;
}
};
/**
* Получает активность DLE по времени
* @param {string} dleAddress - Адрес DLE
* @param {string} period - Период (day, week, month, year)
* @returns {Promise<Object>} - Активность по времени
*/
export const getDLEActivity = async (dleAddress, period = 'month') => {
try {
const response = await axios.post('/dle-analytics/get-dle-activity', {
dleAddress,
period
});
return response.data;
} catch (error) {
console.error('Ошибка при получении активности DLE:', error);
throw error;
}
};
/**
* Получает топ держателей токенов
* @param {string} dleAddress - Адрес DLE
* @param {number} limit - Количество записей
* @returns {Promise<Object>} - Топ держателей
*/
export const getTopTokenHolders = async (dleAddress, limit = 10) => {
try {
const response = await axios.post('/blockchain/get-top-token-holders', {
dleAddress,
limit
});
return response.data;
} catch (error) {
console.error('Ошибка при получении топ держателей токенов:', error);
throw error;
}
};
/**
* Получает распределение токенов
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Распределение токенов
*/
export const getTokenDistribution = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-token-distribution', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении распределения токенов:', error);
throw error;
}
};
/**
* Получает историю событий
* @param {string} dleAddress - Адрес DLE
* @param {string} eventType - Тип события
* @param {number} fromBlock - Начальный блок
* @param {number} toBlock - Конечный блок
* @returns {Promise<Object>} - История событий
*/
export const getEventHistory = async (dleAddress, eventType, fromBlock, toBlock) => {
try {
const response = await axios.post('/dle-analytics/get-event-history', {
dleAddress,
eventType,
fromBlock,
toBlock
});
return response.data;
} catch (error) {
console.error('Ошибка при получении истории событий:', error);
throw error;
}
};
/**
* Получает метрики производительности
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Метрики производительности
*/
export const getPerformanceMetrics = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-performance-metrics', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении метрик производительности:', error);
throw error;
}
};
/**
* Получает аналитику по сетям
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Аналитика по сетям
*/
export const getNetworkAnalytics = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-network-analytics', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении аналитики по сетям:', error);
throw error;
}
};
/**
* Получает отчет о деятельности
* @param {string} dleAddress - Адрес DLE
* @param {string} reportType - Тип отчета
* @param {Object} filters - Фильтры
* @returns {Promise<Object>} - Отчет о деятельности
*/
export const getActivityReport = async (dleAddress, reportType, filters = {}) => {
try {
const response = await axios.post('/blockchain/get-activity-report', {
dleAddress,
reportType,
...filters
});
return response.data;
} catch (error) {
console.error('Ошибка при получении отчета о деятельности:', error);
throw error;
}
};
/**
* Получает сравнительную аналитику
* @param {string} dleAddress - Адрес DLE
* @param {string} comparisonType - Тип сравнения
* @returns {Promise<Object>} - Сравнительная аналитика
*/
export const getComparativeAnalytics = async (dleAddress, comparisonType) => {
try {
const response = await axios.post('/blockchain/get-comparative-analytics', {
dleAddress,
comparisonType
});
return response.data;
} catch (error) {
console.error('Ошибка при получении сравнительной аналитики:', error);
throw error;
}
};
/**
* Получает прогнозы и тренды
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Прогнозы и тренды
*/
export const getTrendsAndForecasts = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-trends-forecasts', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении прогнозов и трендов:', error);
throw error;
}
};
/**
* Получает аналитику рисков
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Аналитика рисков
*/
export const getRiskAnalytics = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-risk-analytics', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении аналитики рисков:', error);
throw error;
}
};
/**
* Получает ключевые показатели эффективности
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Ключевые показатели эффективности
*/
export const getKPIs = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-kpis', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении ключевых показателей эффективности:', error);
throw error;
}
};
/**
* Получает дашборд аналитики
* @param {string} dleAddress - Адрес DLE
* @returns {Promise<Object>} - Дашборд аналитики
*/
export const getAnalyticsDashboard = async (dleAddress) => {
try {
const response = await axios.post('/blockchain/get-analytics-dashboard', {
dleAddress
});
return response.data;
} catch (error) {
console.error('Ошибка при получении дашборда аналитики:', error);
throw error;
}
};