Разбить adminProductHandler.js на модули #51

Closed
opened 2026-06-17 19:39:27 +00:00 by NW · 1 comment
Owner

Проблема

adminProductHandler.js — 1054 строк. Нарушает правило 100 строк на файл. Смешивает роутинг, бизнес-логику и форматирование.

Решение

Разбить на модули:

  • src/handlers/adminHandlers/product/createHandler.js — создание товара
  • src/handlers/adminHandlers/product/updateHandler.js — обновление товара
  • src/handlers/adminHandlers/product/deleteHandler.js — удаление товара
  • src/handlers/adminHandlers/product/importHandler.js — импорт из ZIP/CSV
  • src/handlers/adminHandlers/product/categoryHandler.js — управление категориями
  • src/handlers/adminHandlers/product/locationHandler.js — управление локациями
  • src/handlers/adminHandlers/product/index.js — роутер, делегирующий к модулям

Правило

Каждый файл ≤100 строк, каждая функция ≤30 строк.

Приоритет: ВЫСОКИЙ

## Проблема `adminProductHandler.js` — 1054 строк. Нарушает правило 100 строк на файл. Смешивает роутинг, бизнес-логику и форматирование. ## Решение Разбить на модули: - [ ] `src/handlers/adminHandlers/product/createHandler.js` — создание товара - [ ] `src/handlers/adminHandlers/product/updateHandler.js` — обновление товара - [ ] `src/handlers/adminHandlers/product/deleteHandler.js` — удаление товара - [ ] `src/handlers/adminHandlers/product/importHandler.js` — импорт из ZIP/CSV - [ ] `src/handlers/adminHandlers/product/categoryHandler.js` — управление категориями - [ ] `src/handlers/adminHandlers/product/locationHandler.js` — управление локациями - [ ] `src/handlers/adminHandlers/product/index.js` — роутер, делегирующий к модулям ## Правило Каждый файл ≤100 строк, каждая функция ≤30 строк. ## Приоритет: ВЫСОКИЙ
NW added this to the Phase 2: Architecture & Refactoring milestone 2026-06-17 19:39:27 +00:00
NW added the priority::hightype::refactorphase::2 labels 2026-06-17 19:39:27 +00:00
Author
Owner

Реализовано

  • navigationHandler.js (86 строк) — вход в управление товарами + выбор страны
  • districtHandler.js (89 строк) — выбор города + района
  • categoryAddHandler.js (91 строка) — добавление категории
  • categoryEditHandler.js (82 строки) — редактирование категории
  • categorySelectionHandler.js (48 строк) — отображение категории
  • createHandler.js (56 строк) — промпт добавления товара
  • importHandler.js (75 строк) — импорт товара (JSON/файл)
  • editStartHandler.js (63 строки) — промпт редактирования
  • editImportHandler.js (94 строки) — обработка редактирования
  • deleteHandler.js (97 строк) — удаление + подтверждение
  • viewHandler.js (89 строк) — просмотр товара
  • listHandler.js (90 строк) — список товаров с пагинацией
  • productValidator.js (17 строк) — валидация
  • index.js (31 строка) — роутер, реэкспорт 17 методов

Удалено: дублирующий handleCategorySelection, методы с subcategories (таблица не существует)

Коммит: 4b7ed0c

## ✅ Реализовано - [x] `navigationHandler.js` (86 строк) — вход в управление товарами + выбор страны - [x] `districtHandler.js` (89 строк) — выбор города + района - [x] `categoryAddHandler.js` (91 строка) — добавление категории - [x] `categoryEditHandler.js` (82 строки) — редактирование категории - [x] `categorySelectionHandler.js` (48 строк) — отображение категории - [x] `createHandler.js` (56 строк) — промпт добавления товара - [x] `importHandler.js` (75 строк) — импорт товара (JSON/файл) - [x] `editStartHandler.js` (63 строки) — промпт редактирования - [x] `editImportHandler.js` (94 строки) — обработка редактирования - [x] `deleteHandler.js` (97 строк) — удаление + подтверждение - [x] `viewHandler.js` (89 строк) — просмотр товара - [x] `listHandler.js` (90 строк) — список товаров с пагинацией - [x] `productValidator.js` (17 строк) — валидация - [x] `index.js` (31 строка) — роутер, реэкспорт 17 методов **Удалено**: дублирующий handleCategorySelection, методы с subcategories (таблица не существует) **Коммит**: 4b7ed0c
NW closed this issue 2026-06-17 21:41:20 +00:00
Sign in to join this conversation.