mirror of
https://github.com/umami-software/umami.git
synced 2025-12-06 01:18:00 +01:00
Merge pull request #3275 from zeroCoder1/master
Enhance Batch Processing by Reusing Existing Event Handling Logic
This commit is contained in:
commit
f166a01b2a
1 changed files with 41 additions and 0 deletions
41
src/pages/api/batch.ts
Normal file
41
src/pages/api/batch.ts
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
import sendHandler from './send';
|
||||
|
||||
export default async function handler(req, res) {
|
||||
if (req.method !== 'POST') {
|
||||
res.setHeader('Allow', ['POST']);
|
||||
return res.status(405).end(`Method ${req.method} Not Allowed`);
|
||||
}
|
||||
|
||||
const events = req.body;
|
||||
|
||||
if (!Array.isArray(events)) {
|
||||
return res.status(400).json({ error: 'Invalid payload, expected an array.' });
|
||||
}
|
||||
|
||||
try {
|
||||
for (const event of events) {
|
||||
const mockReq = {
|
||||
...req,
|
||||
body: event,
|
||||
headers: { ...req.headers, origin: req.headers.origin || 'http://localhost:3000' },
|
||||
};
|
||||
|
||||
const mockRes = {
|
||||
...res,
|
||||
status: (code) => {
|
||||
res.status(code);
|
||||
return mockRes;
|
||||
},
|
||||
json: (data) => res.json(data),
|
||||
setHeader: (key, value) => res.setHeader(key, value),
|
||||
end: () => {},
|
||||
};
|
||||
|
||||
await sendHandler(mockReq, mockRes);
|
||||
}
|
||||
|
||||
return res.status(200).json({ success: true, message: `${events.length} events processed.` });
|
||||
} catch (error) {
|
||||
return res.status(500).json({ error: 'Internal Server Error' });
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue