122 lines
3.0 KiB
JavaScript
122 lines
3.0 KiB
JavaScript
import { PrismaClient } from '@prisma/client';
|
|
|
|
// Initialize Prisma client
|
|
const prisma = new PrismaClient();
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
// Get the task ID from the route params
|
|
const taskId = event.context.params.id;
|
|
|
|
try {
|
|
// Find the task
|
|
let task;
|
|
|
|
if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(taskId)) {
|
|
// If it looks like a UUID
|
|
task = await prisma.task.findUnique({
|
|
where: { taskUUID: taskId },
|
|
include: {
|
|
case: {
|
|
select: {
|
|
caseID: true,
|
|
caseUUID: true,
|
|
caseName: true,
|
|
caseStatus: true,
|
|
process: {
|
|
select: {
|
|
processID: true,
|
|
processUUID: true,
|
|
processName: true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
assignedTo: {
|
|
select: {
|
|
userID: true,
|
|
userFullName: true,
|
|
userUsername: true
|
|
}
|
|
},
|
|
form: {
|
|
select: {
|
|
formID: true,
|
|
formUUID: true,
|
|
formName: true,
|
|
formDescription: true,
|
|
formComponents: true,
|
|
formStatus: true,
|
|
customCSS: true,
|
|
customScript: true,
|
|
formEvents: true,
|
|
scriptMode: true
|
|
}
|
|
}
|
|
}
|
|
});
|
|
} else if (!isNaN(parseInt(taskId))) {
|
|
// If it's a numeric ID
|
|
task = await prisma.task.findUnique({
|
|
where: { taskID: parseInt(taskId) },
|
|
include: {
|
|
case: {
|
|
select: {
|
|
caseID: true,
|
|
caseUUID: true,
|
|
caseName: true,
|
|
caseStatus: true,
|
|
process: {
|
|
select: {
|
|
processID: true,
|
|
processUUID: true,
|
|
processName: true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
assignedTo: {
|
|
select: {
|
|
userID: true,
|
|
userFullName: true,
|
|
userUsername: true
|
|
}
|
|
},
|
|
form: {
|
|
select: {
|
|
formID: true,
|
|
formUUID: true,
|
|
formName: true,
|
|
formDescription: true,
|
|
formComponents: true,
|
|
formStatus: true,
|
|
customCSS: true,
|
|
customScript: true,
|
|
formEvents: true,
|
|
scriptMode: true
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
if (!task) {
|
|
return {
|
|
success: false,
|
|
error: 'Task not found'
|
|
};
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
task
|
|
};
|
|
} catch (error) {
|
|
console.error(`Error fetching task ${taskId}:`, error);
|
|
|
|
return {
|
|
success: false,
|
|
error: 'Failed to fetch task',
|
|
details: process.env.NODE_ENV === 'development' ? error.message : undefined
|
|
};
|
|
}
|
|
});
|