ahora muestra tareas pero no las asigna bien porque tengo qeu encontrar la manera de tener como usuarios que son el número de teléfono y que los identifique bien y los ponga bien en el mensaje, poco a poco

main
brobert 3 months ago
parent 6feed9e940
commit dc3b2482f2

Binary file not shown.

@ -1,5 +1,5 @@
import { sendMessage } from '../utils/messaging'; 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<string>) { export function handleTaskCommand(body: string, sender: string, groupId: string, linkedGroups: Set<string>) {
if (groupId && linkedGroups.has(groupId)) { if (groupId && linkedGroups.has(groupId)) {
@ -35,8 +35,21 @@ export function handleTaskCommand(body: string, sender: string, groupId: string,
const taskId = args[0]; const taskId = args[0];
completeTask(parseInt(taskId)); completeTask(parseInt(taskId));
sendMessage(sender, `Tarea ${taskId} marcada como completada`); 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 { } 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.');
} }
} }
} }

@ -34,7 +34,7 @@ export async function fetchGroups(communityId: string): Promise<Set<string>> {
// Save the group to the database // Save the group to the database
execute( execute(
'INSERT OR REPLACE INTO groups (id, name, linked_parent) VALUES (?, ?, ?)', '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
); );
} }
} }

@ -7,7 +7,7 @@ export function createTask(sender: string, description: string, assignedTo?: str
[description, assignedTo || null, dueDate || null, false] [description, assignedTo || null, dueDate || null, false]
); );
const taskId = result.lastInsertRowId; const taskId = result.lastInsertRowid;
return { return {
id: taskId, id: taskId,
description, description,
@ -37,3 +37,11 @@ export function completeTask(taskId: number) {
export function getTasks() { export function getTasks() {
return query('SELECT * FROM tasks'); 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]
);
}

Loading…
Cancel
Save