powr-sdk-api
Version:
Shared API core library for PowrStack projects. Zero dependencies - works with Express, Next.js API routes, and other frameworks. All features are optional and install only what you need.
56 lines (54 loc) • 1.55 kB
JavaScript
;
const express = require('express');
const multer = require('multer');
// const { uploadToGCS, bucket } = require('../uploadToGCS')
const {
bucket,
uploadToGCS,
bucketName
} = require('../services/uploadToGCS.js');
// const uploadToGCS = require('../uploadToGCS.js')
const router = express.Router();
const upload = multer();
router.post('/', upload.single('file'), async (req, res) => {
try {
if (!req.file) {
return res.status(400).json({
status: 'error',
message: 'No file uploaded'
});
}
const url = await uploadToGCS(req.file);
return res.status(200).json({
status: 'success',
message: 'File uploaded successfully',
url
});
} catch (err) {
console.error('Error uploading file:', err);
return res.status(500).json({
status: 'error',
message: 'File upload failed',
error: err.message || 'Unknown error occurred'
});
}
});
router.get('/', async (req, res) => {
try {
const [files] = await bucket.getFiles();
const bucketName = bucket.name;
const imageUrls = files.map(file => `https://storage.googleapis.com/${bucketName}/${file.name}`);
return res.status(200).json({
message: 'Images fetched successfully',
images: imageUrls
});
} catch (err) {
console.error('Error listing files from GCS:', err);
return res.status(500).json({
status: 'error',
message: 'Failed to fetch images',
error: err.message || 'Unknown error occurred'
});
}
});
module.exports = router;