From 7c0770b330eb64cb7b2b9820953562b5ed995f8b Mon Sep 17 00:00:00 2001 From: EpicUsername12 <39063367+EpicUsername12@users.noreply.github.com> Date: Thu, 20 Apr 2023 03:21:34 +0200 Subject: [PATCH 1/5] Early version of `/v1/communities` --- src/database.js | 8 ++++++ .../miiverse-api/routes/communities.js | 13 ++++++++++ src/util/xmlResponseGenerator.js | 25 +++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/src/database.js b/src/database.js index 87ad0ad..68611f4 100644 --- a/src/database.js +++ b/src/database.js @@ -65,6 +65,13 @@ async function getCommunityByTitleID(title_id) { }); } +async function getCommunityByTitleIDs(title_ids) { + verifyConnected(); + return COMMUNITY.findOne({ + title_ids: {$in: title_ids} + }); +} + async function getCommunityByID(community_id) { verifyConnected(); return COMMUNITY.findOne({ @@ -490,6 +497,7 @@ module.exports = { getNewCommunities, getSubCommunities, getCommunityByTitleID, + getCommunityByTitleIDs, getCommunityByID, getTotalPostsByCommunity, getPostsByCommunity, diff --git a/src/services/miiverse-api/routes/communities.js b/src/services/miiverse-api/routes/communities.js index 90fdfd6..98de55e 100644 --- a/src/services/miiverse-api/routes/communities.js +++ b/src/services/miiverse-api/routes/communities.js @@ -87,4 +87,17 @@ router.get('/:appID/posts', async function (req, res) { res.send(await comPostGen.PostsResponse(posts, community, options)); }); +// Handler for POST on '/v1/communities' +router.post('/', async function (req, res) { + console.error("AM I HERE ?.?.????"); + console.log(req.body); + const paramPack = util.decodeParamPack(req.headers["x-nintendo-parampack"]); + console.log(paramPack); + let community = await database.getCommunityByTitleIDs(paramPack.title_id); + if(!community) res.sendStatus(404); + let response = await comPostGen.Community(community); + res.contentType("application/xml"); + res.send(response); +}); + module.exports = router; diff --git a/src/util/xmlResponseGenerator.js b/src/util/xmlResponseGenerator.js index 8a51d5f..fe1fe09 100644 --- a/src/util/xmlResponseGenerator.js +++ b/src/util/xmlResponseGenerator.js @@ -86,6 +86,31 @@ class XmlResponseGenerator { return xml.up().end({ pretty: true, allowEmpty: true}); } + /** + * Generates response to a acommunity request + * @param communities + * @returns xml + * @constructor + */ + static async Community(community) { + let xml = xmlbuilder.create("result", { encoding: 'UTF-8' }) + .e("has_error", "0").up() + .e("version", "1").up() + .e("request_name", "community").up() + .e("community") + .e('community_id', community.community_id).up() + .e("name", community.name).up() + .e("description", community.description).up() + .e("icon").up() + .e("icon_3ds").up() + .e("pid").up() + .e("app_data", community.app_data).up() + .e("is_user_community", 0) + .up() + + return xml.up().end({ pretty: true, allowEmpty: true}); + } + /** * Generate response to request for single post * @param post From 63f1b43986c5714f8915131c4d9398cc871973e3 Mon Sep 17 00:00:00 2001 From: EpicUsername12 <39063367+EpicUsername12@users.noreply.github.com> Date: Thu, 20 Apr 2023 03:39:38 +0200 Subject: [PATCH 2/5] Moved 'multer' to non-dev depedencies --- package-lock.json | 100 +++++++++++++--------------------------------- package.json | 4 +- 2 files changed, 29 insertions(+), 75 deletions(-) diff --git a/package-lock.json b/package-lock.json index dddc925..0dffa5b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,7 @@ "mongoose": "^6.10.1", "mongoose-unique-validator": "^3.1.0", "morgan": "^1.10.0", + "multer": "^1.4.2", "nice-grpc": "^2.0.0", "node-rsa": "^1.0.8", "node-snowflake": "0.0.1", @@ -35,7 +36,6 @@ "xmlbuilder2": "0.0.4" }, "devDependencies": { - "multer": "^1.4.2", "object-to-xml": "^2.0.0", "request": "^2.88.2", "string-sanitizer": "^1.1.1", @@ -1394,8 +1394,7 @@ "node_modules/append-field": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=", - "dev": true + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" }, "node_modules/array-flatten": { "version": "1.1.1", @@ -1627,14 +1626,12 @@ "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "node_modules/busboy": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==", - "dev": true, "dependencies": { "dicer": "0.2.5", "readable-stream": "1.1.x" @@ -1646,14 +1643,12 @@ "node_modules/busboy/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "node_modules/busboy/node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -1664,8 +1659,7 @@ "node_modules/busboy/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "node_modules/bytes": { "version": "3.1.2", @@ -1743,7 +1737,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "engines": [ "node >= 0.8" ], @@ -1808,8 +1801,7 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "node_modules/d": { "version": "1.0.1", @@ -1897,7 +1889,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", "integrity": "sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg==", - "dev": true, "dependencies": { "readable-stream": "1.1.x", "streamsearch": "0.1.2" @@ -1909,14 +1900,12 @@ "node_modules/dicer/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "node_modules/dicer/node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -1927,8 +1916,7 @@ "node_modules/dicer/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "node_modules/ecc-jsbn": { "version": "0.1.2", @@ -3078,14 +3066,12 @@ "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "dependencies": { "minimist": "^1.2.5" }, @@ -3242,7 +3228,6 @@ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", "deprecated": "Multer 1.x is affected by CVE-2022-24434. This is fixed in v1.4.4-lts.1 which drops support for versions of Node.js before 6. Please upgrade to at least Node.js 6 and version 1.4.4-lts.1 of Multer. If you need support for older versions of Node.js, we are open to accepting patches that would fix the CVE on the main 1.x release line, whilst maintaining compatibility with Node.js 0.10.", - "dev": true, "dependencies": { "append-field": "^1.0.0", "busboy": "^0.2.11", @@ -3331,7 +3316,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3434,8 +3418,7 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/protobufjs": { "version": "7.2.3", @@ -3543,7 +3526,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3805,7 +3787,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -3814,7 +3795,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -3999,8 +3979,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "node_modules/uid-safe": { "version": "2.1.5", @@ -4082,8 +4061,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/utils-merge": { "version": "1.0.1", @@ -4259,7 +4237,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, "engines": { "node": ">=0.4" } @@ -5444,8 +5421,7 @@ "append-field": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=", - "dev": true + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" }, "array-flatten": { "version": "1.1.1", @@ -5621,14 +5597,12 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "busboy": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==", - "dev": true, "requires": { "dicer": "0.2.5", "readable-stream": "1.1.x" @@ -5637,14 +5611,12 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -5655,8 +5627,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, @@ -5721,7 +5692,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -5762,8 +5732,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "d": { "version": "1.0.1", @@ -5832,7 +5801,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", "integrity": "sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg==", - "dev": true, "requires": { "readable-stream": "1.1.x", "streamsearch": "0.1.2" @@ -5841,14 +5809,12 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -5859,8 +5825,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, @@ -6298,7 +6263,7 @@ }, "grpc": { "version": "git+ssh://git@github.com/pretendonetwork/grpc-js.git#cb47c0af73a41c99efa56a24ea386537121cdd0f", - "from": "grpc@https://github.com/pretendonetwork/grpc-js", + "from": "grpc@github:pretendonetwork/grpc-js", "requires": { "@grpc/grpc-js": "^1.6.9", "@grpc/proto-loader": "^0.7.0", @@ -6742,14 +6707,12 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -6868,7 +6831,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", - "dev": true, "requires": { "append-field": "^1.0.0", "busboy": "^0.2.11", @@ -6946,8 +6908,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { "version": "1.12.2", @@ -7023,8 +6984,7 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "protobufjs": { "version": "7.2.3", @@ -7103,7 +7063,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7318,14 +7277,12 @@ "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "dev": true + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -7480,8 +7437,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "uid-safe": { "version": "2.1.5", @@ -7553,8 +7509,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -7682,8 +7637,7 @@ "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index acc0cba..54d849b 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "mongoose": "^6.10.1", "mongoose-unique-validator": "^3.1.0", "morgan": "^1.10.0", + "multer": "^1.4.2", "nice-grpc": "^2.0.0", "node-rsa": "^1.0.8", "node-snowflake": "0.0.1", @@ -37,10 +38,9 @@ "xmlbuilder2": "0.0.4" }, "devDependencies": { - "multer": "^1.4.2", "object-to-xml": "^2.0.0", "request": "^2.88.2", "string-sanitizer": "^1.1.1", "xml2json": "^0.12.0" } -} +} \ No newline at end of file From 70697b93f03ada5ca0dfeb621f8d5714d61ae885 Mon Sep 17 00:00:00 2001 From: EpicUsername12 <39063367+EpicUsername12@users.noreply.github.com> Date: Thu, 20 Apr 2023 03:40:05 +0200 Subject: [PATCH 3/5] Base 'POST: /v1/communities' --- .../miiverse-api/routes/communities.js | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/services/miiverse-api/routes/communities.js b/src/services/miiverse-api/routes/communities.js index 98de55e..18b2b2d 100644 --- a/src/services/miiverse-api/routes/communities.js +++ b/src/services/miiverse-api/routes/communities.js @@ -5,6 +5,7 @@ const comPostGen = require('../../../util/xmlResponseGenerator'); const util = require('../../../util/util'); const {COMMUNITY} = require("../../../models/communities"); const {POST} = require("../../../models/post"); +const multer = require('multer') /* GET post titles. */ router.get('/', async function (req, res) { @@ -88,14 +89,32 @@ router.get('/:appID/posts', async function (req, res) { }); // Handler for POST on '/v1/communities' -router.post('/', async function (req, res) { - console.error("AM I HERE ?.?.????"); - console.log(req.body); +router.post('/', multer().none(), async function (req, res) { const paramPack = util.decodeParamPack(req.headers["x-nintendo-parampack"]); - console.log(paramPack); - let community = await database.getCommunityByTitleIDs(paramPack.title_id); - if(!community) res.sendStatus(404); - let response = await comPostGen.Community(community); + let parent_community = await database.getCommunityByTitleIDs(paramPack.title_id); + if(!parent_community) res.sendStatus(404); + + console.log(req.body); + + let num_communities = await COMMUNITY.count(); + let new_community = new COMMUNITY({ + platform_id: 0, // WiiU + name: req.body.name, + description: req.body.description, + open: true, + allows_comments: true, + type: 1, + parent: parent_community.community_id, + admins: parent_community.admins, + icon: req.body.icon, + title_id: paramPack.title_id, + community_id: (parseInt(parent_community.community_id) + (5000 * num_communities)).toString(), + olive_community_id: (parseInt(parent_community.community_id) + (5000 * num_communities)).toString(), + app_data: req.body.app_data.replace(/[^A-Za-z0-9+/=\s]/g, ""), + }); + new_community.save(); + + let response = await comPostGen.Community(new_community); res.contentType("application/xml"); res.send(response); }); From 7eaede2fee8325735ebb5f5bbacc16a26497d703 Mon Sep 17 00:00:00 2001 From: EpicUsername12 <39063367+EpicUsername12@users.noreply.github.com> Date: Thu, 20 Apr 2023 03:40:31 +0200 Subject: [PATCH 4/5] Removed log --- src/services/miiverse-api/routes/communities.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/services/miiverse-api/routes/communities.js b/src/services/miiverse-api/routes/communities.js index 18b2b2d..9857c4e 100644 --- a/src/services/miiverse-api/routes/communities.js +++ b/src/services/miiverse-api/routes/communities.js @@ -93,8 +93,6 @@ router.post('/', multer().none(), async function (req, res) { const paramPack = util.decodeParamPack(req.headers["x-nintendo-parampack"]); let parent_community = await database.getCommunityByTitleIDs(paramPack.title_id); if(!parent_community) res.sendStatus(404); - - console.log(req.body); let num_communities = await COMMUNITY.count(); let new_community = new COMMUNITY({ From 75b3b1d6b1e40d2c5341b1d5cbddc8bfa160d3de Mon Sep 17 00:00:00 2001 From: EpicUsername12 <39063367+EpicUsername12@users.noreply.github.com> Date: Thu, 20 Apr 2023 06:04:49 +0200 Subject: [PATCH 5/5] Forgot to await the community save() --- src/services/miiverse-api/routes/communities.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/miiverse-api/routes/communities.js b/src/services/miiverse-api/routes/communities.js index 9857c4e..8c8a69b 100644 --- a/src/services/miiverse-api/routes/communities.js +++ b/src/services/miiverse-api/routes/communities.js @@ -110,7 +110,8 @@ router.post('/', multer().none(), async function (req, res) { olive_community_id: (parseInt(parent_community.community_id) + (5000 * num_communities)).toString(), app_data: req.body.app_data.replace(/[^A-Za-z0-9+/=\s]/g, ""), }); - new_community.save(); + + await new_community.save(); let response = await comPostGen.Community(new_community); res.contentType("application/xml");