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
JavaScript
;
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;