Add handleCategoryUpdate and handleEditCategory
This commit is contained in:
parent
7fd4cfa671
commit
0d8230e93c
@ -249,7 +249,75 @@ export default class AdminProductHandler {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// Обновление категории
|
||||||
|
static async handleCategoryUpdate(msg) {
|
||||||
|
const chatId = msg.chat.id;
|
||||||
|
const state = userStates.get(chatId);
|
||||||
|
|
||||||
|
if (!state || !state.action?.startsWith('edit_category_')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.isAdmin(msg.from.id)) {
|
||||||
|
await bot.sendMessage(chatId, 'Неавторизованный доступ.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const [locationId, categoryId] = state.action.replace('edit_category_', '').split('_');
|
||||||
|
|
||||||
|
await db.runAsync(
|
||||||
|
'UPDATE categories SET name = ? WHERE id = ? AND location_id = ?',
|
||||||
|
[msg.text, categoryId, locationId]
|
||||||
|
);
|
||||||
|
|
||||||
|
await bot.sendMessage(
|
||||||
|
chatId,
|
||||||
|
`✅ Название категории обновлено на "${msg.text}".`,
|
||||||
|
{
|
||||||
|
reply_markup: {
|
||||||
|
inline_keyboard: [[
|
||||||
|
{
|
||||||
|
text: '« Назад к категориям',
|
||||||
|
callback_data: `prod_category_${locationId}_${categoryId}`
|
||||||
|
}
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
userStates.delete(chatId);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Ошибка обновления категории:', error);
|
||||||
|
await bot.sendMessage(chatId, 'Ошибка обновления категории. Пожалуйста, попробуйте снова.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Редактирование категории
|
||||||
|
static async handleEditCategory(callbackQuery) {
|
||||||
|
if (!this.isAdmin(callbackQuery.from.id)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const chatId = callbackQuery.message.chat.id;
|
||||||
|
const [locationId, categoryId] = callbackQuery.data.replace('edit_category_', '').split('_');
|
||||||
|
|
||||||
|
userStates.set(chatId, { action: `edit_category_${locationId}_${categoryId}` });
|
||||||
|
|
||||||
|
await bot.editMessageText(
|
||||||
|
'Пожалуйста, введите новое название категории:',
|
||||||
|
{
|
||||||
|
chat_id: chatId,
|
||||||
|
message_id: callbackQuery.message.message_id,
|
||||||
|
reply_markup: {
|
||||||
|
inline_keyboard: [[
|
||||||
|
{ text: '❌ Отмена', callback_data: `prod_category_${locationId}_${categoryId}` }
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
static async handleCategorySelection(callbackQuery) {
|
static async handleCategorySelection(callbackQuery) {
|
||||||
if (!this.isAdmin(callbackQuery.from.id)) {
|
if (!this.isAdmin(callbackQuery.from.id)) {
|
||||||
return;
|
return;
|
||||||
|
@ -93,6 +93,11 @@ bot.on('message', async (msg) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check for category update input
|
||||||
|
if (await adminProductHandler.handleCategoryUpdate(msg)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
logDebug(msg.text, 'handleMessage');
|
logDebug(msg.text, 'handleMessage');
|
||||||
|
|
||||||
switch (msg.text) {
|
switch (msg.text) {
|
||||||
|
Loading…
Reference in New Issue
Block a user