/
Elnik87
/
manicure
Обзор
Документация
Войти
/
Elnik87
/
manicure
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
server/api/record/addRecordToTime.patch.ts
99 строк
3 KB
Elnik
Собрал докер образ перед делоем прототипа
20 сен 2025, 10:09
20 сен 2025, 10:09
8f1907e
Код
Авторство
О чём код?
import { RecordDay } from "@s/models/records"; import { defineEventHandler, readBody } from "h3"; import { createError } from "h3"; import { sendTelegramMessage, TelegramMessage, } from "@s/telegramBot/telegramSendMessage"; export default defineEventHandler(async (event) => { try { // Получаем данные из тела запроса const body = await readBody(event); const { recordDayId, recordData } = body; // Проверяем обязательные поля if (!recordDayId) { throw createError({ statusCode: 400, message: "ID дня записи обязателен", }); } if (!recordData || !recordData._id) { throw createError({ statusCode: 400, message: "Данные записи и ID записи обязательны", }); } const { _id: recordId, client, contact, description } = recordData; // Создаем объект для обновления const updateFields: any = {}; if (client !== undefined) updateFields["records.$.client"] = client; if (contact !== undefined) updateFields["records.$.contact"] = contact; if (description !== undefined) updateFields["records.$.description"] = description; updateFields["records.$.recordStatus"] = true; // Обновляем конкретную запись в массиве records const updatedRecordDay = await RecordDay.findOneAndUpdate( { _id: recordDayId, // ID дня "records._id": recordId, // ID конкретной записи внутри дня }, { $set: updateFields, }, { new: true, // Возвращаем обновленный документ runValidators: true, // Проверяем валидацию схемы } ); // Если документ не найден if (!updatedRecordDay) { throw createError({ statusCode: 404, message: "День или запись не найдены", }); } let recordDayToClient; if (updatedRecordDay) recordDayToClient = updatedRecordDay.toObject(); if (recordDayToClient) for (let record of recordDayToClient.records) { delete record.client; delete record.contact; delete record.description; } // Отправляем уведомление в Telegram только после успешного апдейта const record = updatedRecordDay .toObject() .records?.find((record) => String(record._id) === recordId); const telegramMessage: TelegramMessage = { title: `Добавлена новая запись на ${new Date( updatedRecordDay?.date ).toLocaleDateString()} в ${record?.time}`, data: { Клиент: record?.client, Контакт: record?.contact, Примечание: record?.description ? record?.description : "Нет", }, }; await sendTelegramMessage(telegramMessage); // Возвращаем успешный ответ return { success: true, data: { recordDay: recordDayToClient, }, }; } catch (error) { // Обрабатываем ошибки console.error("Ошибка при обновлении записи", error); throw createError({ statusCode: 500, message: "Ошибка при обновлении записи", }); } });