UNPKG

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
"use strict"; 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;