Files
ara-uploader-service/src/controllers/task.controller.ts
2025-10-02 18:23:29 +05:30

106 lines
4.1 KiB
TypeScript

import { Request, Response } from 'express';
import TaskRepo from '@src/repos/task.repo';
import { ITask } from '@src/models/task.model';
class TaskController {
// Get all tasks for a board
public getTasksByBoardId = async (req: Request, res: Response) => {
console.log('task.controller.ts getTasksByBoardId called with boardId:', req.params.boardId);
try {
if (req.headers.authorization !== 'Bearer testtoken') {
return res.status(401).json({ error: 'Unauthorized' });
}
const boardId = +req.params.boardId;
const tasks = await TaskRepo.getTasksByBoardId(boardId);
return res.json({ tasks });
} catch (err) {
console.error('task.controller.ts getTasksByBoardId error:', err);
return res.status(500).json({ error: 'Internal server error',
details: String(err) });
}
};
// Get single task by boardId and taskId
public getTaskByBoardId = async (req: Request, res: Response) => {
console.log('task.controller.ts getTaskByBoardId called with boardId:', req.params.boardId, 'taskId:', req.params.taskId);
try {
if (req.headers.authorization !== 'Bearer testtoken') {
return res.status(401).json({ error: 'Unauthorized' });
}
const boardId = +req.params.boardId;
const taskId = +req.params.taskId;
const task = await TaskRepo.getTaskByBoardId(boardId, taskId);
return res.json({ task });
} catch (err) {
console.error('task.controller.ts getTaskByBoardId error:', err);
return res.status(500).json({ error: 'Internal server error',
details: String(err) });
}
};
// Create task for a board
public createTask = async (req: Request, res: Response) => {
console.log('task.controller.ts createTask called with boardId:', req.params.boardId, 'body:', req.body);
try {
if (req.headers.authorization !== 'Bearer testtoken') {
return res.status(401).json({ error: 'Unauthorized' });
}
// Dummy form validation
const taskData = req.body as ITask;
if (!taskData.title) {
return res.status(400).json({ error: 'Task title required' });
}
const boardId = +req.params.boardId;
const task = await TaskRepo.createTask(boardId, taskData);
return res.status(201).json({ task });
} catch (err) {
console.error('task.controller.ts createTask error:', err);
return res.status(500).json({ error: 'Internal server error',
details: String(err) });
}
};
// Update task for a board
public updateTask = async (req: Request, res: Response) => {
console.log('task.controller.ts updateTask called with boardId:', req.params.boardId, 'taskId:', req.params.taskId, 'body:', req.body);
try {
if (req.headers.authorization !== 'Bearer testtoken') {
return res.status(401).json({ error: 'Unauthorized' });
}
// Dummy form validation
const taskData = req.body as ITask;
if (!taskData.title) {
return res.status(400).json({ error: 'Task title required' });
}
const boardId = +req.params.boardId;
const taskId = +req.params.taskId;
const task = await TaskRepo.updateTask(boardId, taskId, taskData);
return res.json({ task });
} catch (err) {
console.error('task.controller.ts updateTask error:', err);
return res.status(500).json({ error: 'Internal server error',
details: String(err) });
}
};
// Delete task for a board
public deleteTask = async (req: Request, res: Response) => {
console.log('task.controller.ts deleteTask called with boardId:', req.params.boardId, 'taskId:', req.params.taskId);
try {
if (req.headers.authorization !== 'Bearer testtoken') {
return res.status(401).json({ error: 'Unauthorized' });
}
const boardId = +req.params.boardId;
const taskId = +req.params.taskId;
await TaskRepo.deleteTask(boardId, taskId);
return res.status(204).end();
} catch (err) {
console.error('task.controller.ts deleteTask error:', err);
return res.status(500).json({ error: 'Internal server error',
details: String(err) });
}
};
}
export default new TaskController();