directus-task-management/dist/api/controllers/task.controller.js

217 lines
6.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TaskController = void 0;
const task_service_1 = require("../services/task.service");
class TaskController {
constructor() {
this.taskService = new task_service_1.TaskService();
}
/**
* Create a new task
*/
async createTask(req, res) {
try {
const task = await this.taskService.createTask(req.body);
res.status(201).json({
success: true,
data: task,
message: 'Task created successfully'
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to create task'
});
}
}
/**
* Get all tasks with pagination
*/
async getTasks(req, res) {
try {
const result = await this.taskService.getTasks(req.query);
res.json({
success: true,
...result
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to fetch tasks'
});
}
}
/**
* Get a single task by ID
*/
async getTaskById(req, res) {
try {
const task = await this.taskService.getTaskById(req.params.id);
res.json({
success: true,
data: task
});
}
catch (error) {
const statusCode = error.message === 'Task not found' ? 404 : 500;
res.status(statusCode).json({
success: false,
error: error.message || 'Failed to fetch task'
});
}
}
/**
* Update a task
*/
async updateTask(req, res) {
try {
const task = await this.taskService.updateTask(req.params.id, req.body);
res.json({
success: true,
data: task,
message: 'Task updated successfully'
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to update task'
});
}
}
/**
* Delete a task
*/
async deleteTask(req, res) {
try {
await this.taskService.deleteTask(req.params.id);
res.json({
success: true,
message: 'Task deleted successfully'
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to delete task'
});
}
}
/**
* Bulk create tasks
*/
async bulkCreateTasks(req, res) {
try {
const tasks = await this.taskService.bulkCreateTasks(req.body);
res.status(201).json({
success: true,
data: tasks,
message: `${tasks.length} tasks created successfully`
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to bulk create tasks'
});
}
}
/**
* Bulk update tasks
*/
async bulkUpdateTasks(req, res) {
try {
const tasks = await this.taskService.bulkUpdateTasks(req.body);
res.json({
success: true,
data: tasks,
message: `${tasks.length} tasks updated successfully`
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to bulk update tasks'
});
}
}
/**
* Bulk delete tasks
*/
async bulkDeleteTasks(req, res) {
try {
await this.taskService.bulkDeleteTasks(req.body);
res.json({
success: true,
message: `${req.body.ids.length} tasks deleted successfully`
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to bulk delete tasks'
});
}
}
/**
* Duplicate a task
*/
async duplicateTask(req, res) {
try {
const task = await this.taskService.duplicateTask(req.body);
res.status(201).json({
success: true,
data: task,
message: 'Task duplicated successfully'
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to duplicate task'
});
}
}
/**
* Create a template from a task
*/
async createTemplateFromTask(req, res) {
try {
const template = await this.taskService.createTemplateFromTask(req.body);
res.status(201).json({
success: true,
data: template,
message: 'Template created successfully from task'
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to create template from task'
});
}
}
/**
* Apply a template to create a new task
*/
async applyTemplate(req, res) {
try {
const task = await this.taskService.applyTemplate(req.body);
res.status(201).json({
success: true,
data: task,
message: 'Task created successfully from template'
});
}
catch (error) {
res.status(500).json({
success: false,
error: error.message || 'Failed to apply template'
});
}
}
}
exports.TaskController = TaskController;
//# sourceMappingURL=task.controller.js.map