From dc3b2482f27005e791081f71abb909d5b232c688 Mon Sep 17 00:00:00 2001 From: brobert Date: Sun, 23 Mar 2025 01:27:10 +0100 Subject: [PATCH] =?UTF-8?q?ahora=20muestra=20tareas=20pero=20no=20las=20as?= =?UTF-8?q?igna=20bien=20porque=20tengo=20qeu=20encontrar=20la=20manera=20?= =?UTF-8?q?de=20tener=20como=20usuarios=20que=20son=20el=20n=C3=BAmero=20d?= =?UTF-8?q?e=20tel=C3=A9fono=20y=20que=20los=20identifique=20bien=20y=20lo?= =?UTF-8?q?s=20ponga=20bien=20en=20el=20mensaje,=20poco=20a=20poco?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/bot.db | Bin 28672 -> 28672 bytes src/bot/commands/task.ts | 17 +++++++++++++++-- src/bot/utils/api.ts | 2 +- src/services/taskService.ts | 10 +++++++++- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/data/bot.db b/data/bot.db index 4aa3852f94e0de1b2bd2959deff752bc67321398..dc70e72af1ad8fc35eb9c673c182c98ac62ef3ca 100644 GIT binary patch delta 486 zcmZp8z}WDBae_3X%tRSyMwyKXOZY`N_&zf5-{;@QKbyaSKbT*aUzqRXW?L&3OR`iiN%@edHD*74#p;C76zuK#s+4l66|aYl0X#&MWv}pU>Q>b3o}EY zv&qghDHX)X2vFl7N%wK> zk`s$c5{rR~>(Nz9vam7m8Z&TWF-Vb_jX@SD1-33TFB6Lrc_yG+K`w&071J^Dj9>*2 zGZGyPr7@h#%fP_E$p4jr|0^(nUh|7{GBS%Z0v(%O%mI>O;_qhQKg!MQ}a@b5_2ZMw3lT& h!NC87{{+zRJ^YhT`tt}Nf)T8g7bqyr$hRm!0RZ!=b`}5t delta 158 zcmZp8z}WDBae_1>>qHr6M%Il9OZYdl1pMJ&6d=IE%fP_E#9zn2zn{Nuv!Fr|KdU_x zi?#aX3HB1ap?P_Uxv41%?nU{f1(Vm=i)-040_Cg?jSP&Fb diff --git a/src/bot/commands/task.ts b/src/bot/commands/task.ts index d8673d1..a66a493 100644 --- a/src/bot/commands/task.ts +++ b/src/bot/commands/task.ts @@ -1,5 +1,5 @@ import { sendMessage } from '../utils/messaging'; -import { createTask, assignTask, completeTask } from '../../services/taskService'; +import { createTask, assignTask, completeTask, getPendingTasks } from '../../services/taskService'; export function handleTaskCommand(body: string, sender: string, groupId: string, linkedGroups: Set) { if (groupId && linkedGroups.has(groupId)) { @@ -35,8 +35,21 @@ export function handleTaskCommand(body: string, sender: string, groupId: string, const taskId = args[0]; completeTask(parseInt(taskId)); sendMessage(sender, `Tarea ${taskId} marcada como completada`); + } else if (action === 'mostrar' || !action) { + // Handle /tarea or /tarea mostrar + const user = `@${sender.split('@')[0]}`; // Default to the sender + const tasks = getPendingTasks(user); + + if (tasks.length === 0) { + sendMessage(sender, 'No tienes tareas pendientes.'); + } else { + const taskList = tasks.map((task) => { + return `- Tarea ${task.id}: ${task.description}${task.dueDate ? ` (para el ${task.dueDate})` : ''}`; + }).join('\n'); + sendMessage(sender, `Tus tareas pendientes:\n${taskList}`); + } } else { - sendMessage(sender, 'Acción no reconocida. Usa /tarea nueva, /tarea asignar, o /tarea completar.'); + sendMessage(sender, 'Acción no reconocida. Usa /tarea nueva, /tarea asignar, /tarea completar, o /tarea mostrar.'); } } } diff --git a/src/bot/utils/api.ts b/src/bot/utils/api.ts index f66e194..99e348e 100644 --- a/src/bot/utils/api.ts +++ b/src/bot/utils/api.ts @@ -34,7 +34,7 @@ export async function fetchGroups(communityId: string): Promise> { // Save the group to the database execute( 'INSERT OR REPLACE INTO groups (id, name, linked_parent) VALUES (?, ?, ?)', - [group.id, group.name || 'Unnamed Group', group.linkedParent] // Provide a default name if missing + [group.id, group.subject || 'Unnamed Group', group.linkedParent] // Provide a default name if missing ); } } diff --git a/src/services/taskService.ts b/src/services/taskService.ts index cf1f4e8..eb28ff9 100644 --- a/src/services/taskService.ts +++ b/src/services/taskService.ts @@ -7,7 +7,7 @@ export function createTask(sender: string, description: string, assignedTo?: str [description, assignedTo || null, dueDate || null, false] ); - const taskId = result.lastInsertRowId; + const taskId = result.lastInsertRowid; return { id: taskId, description, @@ -37,3 +37,11 @@ export function completeTask(taskId: number) { export function getTasks() { return query('SELECT * FROM tasks'); } + +// Get pending tasks for a specific user +export function getPendingTasks(assignedTo: string) { + return query( + 'SELECT * FROM tasks WHERE assigned_to = ? AND completed = FALSE', + [assignedTo] + ); +}