- 031 마이그레이션: 체류·스크롤 집계, analytics_active_sessions - heartbeat API, 관리자 realtime API, 클라이언트 heartbeat - 대시보드: 현재 접속자 목록(로그인 닉네임·아바타), 참여 지표
28 lines
705 B
JavaScript
28 lines
705 B
JavaScript
import { requireAdminSession } from '../../../../utils/admin-auth.js'
|
|
import {
|
|
getAnalyticsActiveSessions,
|
|
getAnalyticsRealtimeSummary
|
|
} from '../../../../repositories/analytics-repository.js'
|
|
|
|
/**
|
|
* 관리자 실시간 접속 통계 API
|
|
* @param {import('h3').H3Event} event - 요청 이벤트
|
|
* @returns {Promise<Object>} 실시간 요약·접속자 목록
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
requireAdminSession(event)
|
|
|
|
const query = getQuery(event)
|
|
const limit = Number(query.limit) || 20
|
|
|
|
const [summary, sessions] = await Promise.all([
|
|
getAnalyticsRealtimeSummary(),
|
|
getAnalyticsActiveSessions({ limit })
|
|
])
|
|
|
|
return {
|
|
summary,
|
|
sessions
|
|
}
|
|
})
|