44 lines
984 B
JavaScript
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'
|
|
})
|
|
}
|
|
})
|