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.
74 lines (69 loc) • 1.76 kB
JavaScript
;
const express = require("express");
const router = express.Router();
const {
getDb
} = require("../services/mongo");
// Get all activities
router.get("/", async (req, res) => {
try {
const {
contentId
} = req.query;
const projectId = req.projectId; // Use middleware-injected projectId
const query = {
projectId
};
if (contentId) {
query.contentId = contentId;
}
const db = await getDb();
const activities = await db.collection("activities").find(query).toArray();
return res.json({
success: true,
data: activities
});
} catch (error) {
console.error("Error retrieving activities:", error);
return res.status(500).json({
success: false,
message: "Failed to retrieve activities."
});
}
});
// Create new activity
router.post("/", async (req, res) => {
try {
const {
contentId,
activity
} = req.body;
const projectId = req.projectId; // Use middleware-injected projectId
if (!contentId || !activity) {
return res.status(400).json({
success: false,
message: "Content ID and activity are required"
});
}
const activityData = {
projectId,
contentId,
activity,
createdAt: new Date()
};
const db = await getDb();
const result = await db.collection("activities").insertOne(activityData);
return res.status(201).json({
success: true,
message: "Activity created successfully",
id: result.insertedId
});
} catch (error) {
console.error("Error creating activity:", error);
return res.status(500).json({
success: false,
message: "Failed to create activity."
});
}
});
module.exports = router;