From 0dd34d30d4eb8fcc2ad6f13dd5e0dcc7be676dd8 Mon Sep 17 00:00:00 2001 From: romantarkin Date: Mon, 18 Aug 2025 10:43:11 +0500 Subject: [PATCH] fi --- .../src/controllers/subscriberController.js | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/mail-service/src/controllers/subscriberController.js b/mail-service/src/controllers/subscriberController.js index c1e4a51..af5bdee 100644 --- a/mail-service/src/controllers/subscriberController.js +++ b/mail-service/src/controllers/subscriberController.js @@ -3,8 +3,28 @@ import { Subscriber } from '../models/index.js'; export default { async create(req, res) { try { - const subscriber = await Subscriber.create(req.body); - res.status(201).json(subscriber); + const { email, ...subscriberData } = req.body; + + 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) { res.status(400).json({ error: err.message }); }