From 04328fe4873077d3cecee29f00d4676999dc3c74 Mon Sep 17 00:00:00 2001 From: Jemma Poffinbarger Date: Sun, 26 Mar 2023 12:13:53 -0500 Subject: [PATCH] added support for fetching community posts with non-standard community ID --- .../miiverse-api/routes/communities.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/services/miiverse-api/routes/communities.js b/src/services/miiverse-api/routes/communities.js index cf13228..c665e02 100644 --- a/src/services/miiverse-api/routes/communities.js +++ b/src/services/miiverse-api/routes/communities.js @@ -3,6 +3,7 @@ const router = express.Router(); const database = require('../../../database'); const comPostGen = require('../../../util/CommunityPostGen'); const processHeaders = require('../../../util/util'); +const {COMMUNITY} = require("../../../models/communities"); /* GET post titles. */ router.get('/', async function (req, res) { @@ -66,4 +67,26 @@ router.get('/0/posts', async function (req, res) { } }); +router.get('/:appID/posts', async function (req, res) { + const paramPack = processHeaders.data.decodeParamPack(req.headers["x-nintendo-parampack"]); + let community = await COMMUNITY.findOne({ app_id: req.params.appID }); + if(!community) + community = await database.getCommunityByTitleID(paramPack.title_id); + if(!community) + res.sendStatus(404); + let posts; + if(req.query.search_key) + posts = await database.getPostsByCommunityKey(community, parseInt(req.query.limit), req.query.search_key); + else + posts = await database.getPostsByCommunity(community, parseInt(req.query.limit)); + /* Build formatted response and send it off. */ + let response; + if(req.query.with_mii === '1') + response = await comPostGen.PostsResponseWithMii(posts, community); + else + response = await comPostGen.PostsResponse(posts, community); + res.contentType("application/xml"); + res.send(response); +}); + module.exports = router;