44 lines
984 B
JavaScript

export default defineEventHandler(async () => {
try {
const stats = await prisma.notifications.groupBy({
by: ['status'],
where: {
type: 'bulk'
},
_count: true
})
const formattedStats = {
pending: 0,
processing: 0,
completed: 0,
failed: 0
}
stats.forEach(stat => {
switch (stat.status) {
case 'draft':
case 'scheduled':
formattedStats.pending += stat._count
break
case 'sending':
formattedStats.processing += stat._count
break
case 'sent':
formattedStats.completed += stat._count
break
case 'failed':
formattedStats.failed += stat._count
break
}
})
return formattedStats
} catch (error) {
console.error('Error fetching batch stats:', error)
throw createError({
statusCode: 500,
statusMessage: 'Failed to fetch batch statistics'
})
}
})