admin template flow added with edit and delete routes
This commit is contained in:
parent
088ac173a7
commit
f456fb8af9
@ -53,4 +53,70 @@ export const getTemplates = async (req: Request, res: Response) => {
|
|||||||
error: error instanceof Error ? error.message : 'Unknown error'
|
error: error instanceof Error ? error.message : 'Unknown error'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const updateTemplate = async (req: Request, res: Response) => {
|
||||||
|
try {
|
||||||
|
const { id } = req.params;
|
||||||
|
const updates = req.body;
|
||||||
|
|
||||||
|
const template = await WorkflowTemplate.findByPk(id);
|
||||||
|
|
||||||
|
if (!template) {
|
||||||
|
return res.status(404).json({
|
||||||
|
success: false,
|
||||||
|
message: 'Workflow template not found'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
await template.update(updates);
|
||||||
|
|
||||||
|
return res.status(200).json({
|
||||||
|
success: true,
|
||||||
|
message: 'Workflow template updated successfully',
|
||||||
|
data: template
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
logger.error('Error updating workflow template:', error);
|
||||||
|
return res.status(500).json({
|
||||||
|
success: false,
|
||||||
|
message: 'Failed to update workflow template',
|
||||||
|
error: error instanceof Error ? error.message : 'Unknown error'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const deleteTemplate = async (req: Request, res: Response) => {
|
||||||
|
try {
|
||||||
|
const { id } = req.params;
|
||||||
|
const template = await WorkflowTemplate.findByPk(id);
|
||||||
|
|
||||||
|
if (!template) {
|
||||||
|
return res.status(404).json({
|
||||||
|
success: false,
|
||||||
|
message: 'Workflow template not found'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard delete or Soft delete based on preference.
|
||||||
|
// Since we have isActive flag, let's use that (Soft Delete) or just destroy if it's unused.
|
||||||
|
// For now, let's do a hard delete to match the expectation of "Delete" in the UI
|
||||||
|
// unless there are FK constraints (which sequelize handles).
|
||||||
|
// Actually, safer to Soft Delete by setting isActive = false if we want history,
|
||||||
|
// but user asked for Delete. Let's do destroy.
|
||||||
|
await template.destroy();
|
||||||
|
|
||||||
|
return res.status(200).json({
|
||||||
|
success: true,
|
||||||
|
message: 'Workflow template deleted successfully'
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
logger.error('Error deleting workflow template:', error);
|
||||||
|
return res.status(500).json({
|
||||||
|
success: false,
|
||||||
|
message: 'Failed to delete workflow template',
|
||||||
|
error: error instanceof Error ? error.message : 'Unknown error'
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
import { createTemplate, getTemplates } from '../controllers/workflowTemplate.controller';
|
import { createTemplate, getTemplates, updateTemplate, deleteTemplate } from '../controllers/workflowTemplate.controller';
|
||||||
import { authenticateToken } from '../middlewares/auth.middleware';
|
import { authenticateToken } from '../middlewares/auth.middleware';
|
||||||
import { requireAdmin } from '../middlewares/authorization.middleware';
|
import { requireAdmin } from '../middlewares/authorization.middleware';
|
||||||
|
|
||||||
@ -10,5 +10,7 @@ router.get('/', authenticateToken, getTemplates);
|
|||||||
|
|
||||||
// Admin only route to create templates
|
// Admin only route to create templates
|
||||||
router.post('/', authenticateToken, requireAdmin, createTemplate);
|
router.post('/', authenticateToken, requireAdmin, createTemplate);
|
||||||
|
router.put('/:id', authenticateToken, requireAdmin, updateTemplate);
|
||||||
|
router.delete('/:id', authenticateToken, requireAdmin, deleteTemplate);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user