fi
This commit is contained in:
parent
3fbc13e1b4
commit
0dd34d30d4
@ -3,8 +3,28 @@ import { Subscriber } from '../models/index.js';
|
|||||||
export default {
|
export default {
|
||||||
async create(req, res) {
|
async create(req, res) {
|
||||||
try {
|
try {
|
||||||
const subscriber = await Subscriber.create(req.body);
|
const { email, ...subscriberData } = req.body;
|
||||||
res.status(201).json(subscriber);
|
|
||||||
|
if (!email) {
|
||||||
|
return res.status(400).json({ error: 'Email is required' });
|
||||||
|
}
|
||||||
|
|
||||||
|
// Проверяем, существует ли подписчик с таким email
|
||||||
|
let subscriber = await Subscriber.findOne({ where: { email } });
|
||||||
|
|
||||||
|
if (subscriber) {
|
||||||
|
// Если подписчик существует, обновляем его
|
||||||
|
await subscriber.update({
|
||||||
|
...subscriberData,
|
||||||
|
// Если статус не передан, оставляем текущий
|
||||||
|
status: subscriberData.status || subscriber.status
|
||||||
|
});
|
||||||
|
res.json({ message: 'Subscriber updated', subscriber });
|
||||||
|
} else {
|
||||||
|
// Если подписчика нет, создаем нового
|
||||||
|
subscriber = await Subscriber.create(req.body);
|
||||||
|
res.status(201).json({ message: 'Subscriber created', subscriber });
|
||||||
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
res.status(400).json({ error: err.message });
|
res.status(400).json({ error: err.message });
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user