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.

81 lines (77 loc) 1.77 kB
"use strict"; const express = require("express"); const router = express.Router(); const { getDb } = require('../services/mongo'); // Get all slides router.get("/", async (req, res) => { try { const { tag } = req.query; const projectId = req.projectId; // Use middleware-injected projectId const query = { projectId }; if (tag) { query.tag = tag; } const db = await getDb(); const slidesData = await db.collection('slides').find(query).toArray(); return res.json({ success: true, data: slidesData }); } catch (error) { console.error("Error retrieving slides:", error); return res.status(500).json({ success: false, message: "Failed to retrieve slides." }); } }); // Create new slide router.post("/", async (req, res) => { try { const { tag, city, url, title, description, expiry } = req.body; const projectId = req.projectId; // Use middleware-injected projectId if (!url || !title) { return res.status(400).json({ success: false, message: "URL and title are required" }); } const slideData = { projectId, tag, city, url, title, description, expiry, createdAt: new Date() }; const db = await getDb(); const result = await db.collection('slides').insertOne(slideData); return res.status(201).json({ success: true, message: "Slide created successfully", id: result.insertedId }); } catch (error) { console.error("Error creating slide:", error); return res.status(500).json({ success: false, message: "Failed to create slide." }); } }); module.exports = router;