Dealer_Onboarding_Backend/routes/upload.js

66 lines
1.6 KiB
JavaScript

const express = require('express');
const router = express.Router();
const { authenticate } = require('../middleware/auth');
const { uploadSingle, uploadMultiple, handleUploadError } = require('../middleware/upload');
// All routes require authentication
router.use(authenticate);
// Single file upload
router.post('/document', (req, res, next) => {
uploadSingle(req, res, (err) => {
if (err) {
return handleUploadError(err, req, res, next);
}
if (!req.file) {
return res.status(400).json({
success: false,
message: 'No file uploaded'
});
}
res.json({
success: true,
message: 'File uploaded successfully',
file: {
filename: req.file.filename,
originalName: req.file.originalname,
size: req.file.size,
url: `/uploads/${req.body.uploadType || 'documents'}/${req.file.filename}`
}
});
});
});
// Multiple files upload
router.post('/documents', (req, res, next) => {
uploadMultiple(req, res, (err) => {
if (err) {
return handleUploadError(err, req, res, next);
}
if (!req.files || req.files.length === 0) {
return res.status(400).json({
success: false,
message: 'No files uploaded'
});
}
const files = req.files.map(file => ({
filename: file.filename,
originalName: file.originalname,
size: file.size,
url: `/uploads/${req.body.uploadType || 'documents'}/${file.filename}`
}));
res.json({
success: true,
message: 'Files uploaded successfully',
files
});
});
});
module.exports = router;