From 74e7dc8fd5018042fe39b6fa67023d7b1854a9e0 Mon Sep 17 00:00:00 2001 From: ParkSuMin Date: Sun, 4 Jan 2026 21:53:47 +0300 Subject: [PATCH] Russian describtion of errors --- server/db/database.js | 58 +++++++++++++++++++++---------------------- server/server.js | 24 +++++++++--------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/server/db/database.js b/server/db/database.js index 066b0cb..675ba4e 100644 --- a/server/db/database.js +++ b/server/db/database.js @@ -135,14 +135,14 @@ export default class DBAdapter { if (!id || !customer_name || !orderDate){ return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Empty in customer name or order date") + error: new Error("Пустое имя клиента или дата заказа") }); } const currentDate = await getCurrentDate(); if (orderDate < currentDate){ return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Invalid order date") + error: new Error("Недопустимая дата заказа") }); } try { @@ -152,7 +152,7 @@ export default class DBAdapter { } catch(err){ return Promise.reject({ type: DB_INTERNAL_ERROR, - error: new Error("Server error") + error: new Error("Ошибка сервера") }); } } @@ -192,8 +192,8 @@ export default class DBAdapter { if (!id || !customer_name || !orderDate) { return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Order ID, name or date is required!"), - message: "Order ID, name or date is required!" // Добавляем message напрямую + error: new Error("Нужен ID заказа, имя и дата"), + message: "Нужен ID заказа, имя и дата" // Добавляем message напрямую }); } @@ -201,8 +201,8 @@ export default class DBAdapter { if (orderDate < currentDate) { return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Order date cannot be less than current date"), - message: "Order date cannot be less than current date" + error: new Error("Дата заказа не может быть раньше текущей"), + message: "Дата заказа не может быть раньше текущей" }); } @@ -212,8 +212,8 @@ export default class DBAdapter { if (!order || order.length === 0) { // Исправлено: проверяем length return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Order not found"), - message: "Order not found" + error: new Error("Заказ не найден"), + message: "Заказ не найден" }); } @@ -228,8 +228,8 @@ export default class DBAdapter { console.error('Database error in changeOrderInfo:', err); return Promise.reject({ type: DB_INTERNAL_ERROR, - error: new Error("Server error"), - message: err.message || "Database operation failed", + error: new Error("Ошибка сервера"), + message: err.message || "Ошибка операции с базой данных", details: err.message }); } @@ -279,7 +279,7 @@ export default class DBAdapter { return Promise.reject({ type: DB_INTERNAL_ERROR, - error: new Error("Failed to delete order"), + error: new Error("Не удалось удалить заказ"), details: err.message }); } @@ -303,7 +303,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Order not found") + error: new Error("Заказ не найден") }); } @@ -319,7 +319,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Product not found") + error: new Error("Товар не найден") }); } @@ -328,7 +328,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Insufficient product quantity") + error: new Error("Недостаточно товара на складе") }); } @@ -361,16 +361,16 @@ export default class DBAdapter { console.error('Transaction error:', err); let errorType = DB_INTERNAL_ERROR; - let userMessage = "Database operation failed"; + let userMessage = "Ошибка операции с базой данных"; let retryable = false; if (err.code === 'ER_LOCK_WAIT_TIMEOUT' || err.errno === 1205) { errorType = 'DB_CONFLICT'; - userMessage = "System is busy. Please try again in a moment."; + userMessage = "Система занята. Попробуйте позже."; retryable = true; } else if (err.code === 'ER_DUP_ENTRY') { errorType = DB_USER_ERROR; - userMessage = "Item already exists in the order"; + userMessage = "Позиция уже есть в заказе"; } return Promise.reject({ @@ -391,7 +391,7 @@ export default class DBAdapter { if (!itemId || !Number.isFinite(quantity) || quantity <= 0) { return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Invalid item or quantity") + error: new Error("Неверная позиция или количество") }); } @@ -409,7 +409,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Order item not found") + error: new Error("Позиция заказа не найдена") }); } @@ -426,7 +426,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Product not found") + error: new Error("Товар не найден") }); } if (newProductRow.quantity < quantity) { @@ -434,7 +434,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Insufficient product quantity") + error: new Error("Недостаточно товара на складе") }); } @@ -472,7 +472,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Insufficient product quantity") + error: new Error("Недостаточно товара на складе") }); } @@ -509,7 +509,7 @@ export default class DBAdapter { return Promise.reject({ type: DB_INTERNAL_ERROR, - error: new Error("Failed to update order item"), + error: new Error("Не удалось обновить позицию заказа"), details: err.message }); } @@ -533,7 +533,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Order item not found") + error: new Error("Позиция заказа не найдена") }); } @@ -564,7 +564,7 @@ export default class DBAdapter { return Promise.reject({ type: DB_INTERNAL_ERROR, - error: new Error("Failed to delete order item"), + error: new Error("Не удалось удалить позицию заказа"), details: err.message, itemId: itemId }); @@ -589,7 +589,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Target order not found") + error: new Error("Целевой заказ не найден") }); } @@ -604,7 +604,7 @@ export default class DBAdapter { connection.release(); return Promise.reject({ type: DB_USER_ERROR, - error: new Error("Order item not found") + error: new Error("Позиция заказа не найдена") }); } @@ -628,7 +628,7 @@ export default class DBAdapter { return Promise.reject({ type: DB_INTERNAL_ERROR, - error: new Error("Failed to move order item"), + error: new Error("Не удалось перенести позицию заказа"), details: err.message }); } diff --git a/server/server.js b/server/server.js index 4309347..88b8152 100644 --- a/server/server.js +++ b/server/server.js @@ -1,4 +1,4 @@ -import express from "express"; +import express from "express"; import dotenv from "dotenv" import { randomUUID } from "crypto"; import DBAdapter, { getCurrentDate, setCurrentDate } from "./db/database.js"; @@ -175,7 +175,7 @@ app.post('/api/orders', async (req, res) => { res.status(500).json({ timeStamp: new Date().toISOString(), statusCode: 500, - message: "Unknown error", + message: "Неизвестная ошибка", error: err.message }); } @@ -190,7 +190,7 @@ app.put('/api/orders/:id', async (req, res) => { return res.status(400).json({ timeStamp: new Date().toISOString(), statusCode: 400, - error: "Customer name and order date are required" + error: "Имя клиента и дата заказа обязательны" }); } @@ -212,7 +212,7 @@ app.put('/api/orders/:id', async (req, res) => { const errorMessage = err.message || err.error?.message || - "Unknown error occurred"; + "Произошла неизвестная ошибка"; switch(err.type) { case DB_INTERNAL_ERROR: @@ -220,7 +220,7 @@ app.put('/api/orders/:id', async (req, res) => { timeStamp: new Date().toISOString(), statusCode: 500, error: errorMessage, - details: err.details || "Internal server error" + details: err.details || "Внутренняя ошибка сервера" }); case DB_USER_ERROR: @@ -265,7 +265,7 @@ app.post('/api/orders/:orderId/items', async (req, res) => { return res.status(400).json({ timeStamp: new Date().toISOString(), statusCode: 400, - error: "Invalid productId or quantity" + error: "Некорректный товар или количество" }); } @@ -290,21 +290,21 @@ app.post('/api/orders/:orderId/items', async (req, res) => { return res.status(400).json({ timeStamp: new Date().toISOString(), statusCode: 400, - error: err.error?.message || "Invalid request", + error: err.error?.message || "Некорректный запрос", details: err.details }); } else if (err.type === DB_INTERNAL_ERROR) { return res.status(500).json({ timeStamp: new Date().toISOString(), statusCode: 500, - error: "Internal server error", + error: "Внутренняя ошибка сервера", details: err.error?.message }); } else { return res.status(500).json({ timeStamp: new Date().toISOString(), statusCode: 500, - error: "Internal server error" + error: "Внутренняя ошибка сервера" }); } } @@ -347,14 +347,14 @@ app.delete('/api/orders/:orderId/items/:itemId', async (req, res) => { return res.status(500).json({ timeStamp: new Date().toISOString(), statusCode: 500, - error: "Server error", + error: "Ошибка сервера", details: err.error.message }); } else { return res.status(500).json({ timeStamp: new Date().toISOString(), statusCode: 500, - error: "Internal server error", + error: "Внутренняя ошибка сервера", details: err.message }); } @@ -387,7 +387,7 @@ app.post('/api/order-items/:itemId/move', async (req, res) => { app.use((req, res) => { - res.status(404).json({ error: 'Invalid route' }); +res.status(404).json({ error: 'Неверный маршрут' }); }); const server = app.listen(appPort, async() => {