bodyparser

This commit is contained in:
Moon Man 2023-12-27 15:54:35 +00:00
parent 84aee9481f
commit 56c77e078f
4 changed files with 56 additions and 11 deletions

54
package-lock.json generated
View File

@ -11,6 +11,7 @@
"dependencies": {
"activitypub-http-signatures": "^2.0.1",
"better-sqlite3": "^9.2.2",
"body-parser": "^1.20.2",
"express": "^4.18.2",
"knex": "^3.1.0",
"markdown-it": "^14.0.0",
@ -900,12 +901,12 @@
}
},
"node_modules/body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
@ -913,7 +914,7 @@
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
"raw-body": "2.5.1",
"raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
@ -1741,6 +1742,29 @@
"node": ">= 0.10.0"
}
},
"node_modules/express/node_modules/body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
"raw-body": "2.5.1",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@ -1754,6 +1778,20 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/express/node_modules/raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
"integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@ -3490,9 +3528,9 @@
}
},
"node_modules/raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
"integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",

View File

@ -30,6 +30,7 @@
"dependencies": {
"activitypub-http-signatures": "^2.0.1",
"better-sqlite3": "^9.2.2",
"body-parser": "^1.20.2",
"express": "^4.18.2",
"knex": "^3.1.0",
"markdown-it": "^14.0.0",

View File

@ -21,13 +21,15 @@ export const handleInboxPost = async (req: Request, res: Response) => {
return;
}
const body = await streamToString(req.body);
const body = req.body; // await streamToString(req.body);
let activity: Record<string, any>;
try {
activity = JSON.parse(body);
}
catch (e) {
console.warn("body json parse failed");
console.error(typeof req.body);
console.error(req.body, body);
res.status(403).end();
return;
}
@ -75,6 +77,9 @@ export const handleInboxPost = async (req: Request, res: Response) => {
await addFollower(actor.id, follower.id, follower.preferredUsername, follower.name, follower.inbox, follower.endpoints?.sharedInbox);
const response = {
};
console.log("Done handling inbox POST follow request");
res.status(200);
return;
@ -223,4 +228,4 @@ export const userToPerson = (user: User) => {
publicKeyPem: user.public_key
}
};
};
};

View File

@ -1,4 +1,5 @@
import express, { Request } from "express";
import bodyParser from "body-parser";
import { toCollection as getOutbox } from "./outbox.js";
import { getById as getUserById, getNickname, get as getUserByNickname, getId as getUserId, User } from "./user.js";
import { Routes } from "./router.js";
@ -11,7 +12,7 @@ const port = parseInt(process.env.port || "8080");
const app = express();
app.use(
express.urlencoded({ extended: true })
bodyParser.text({ type: "*/*" })
);
app.post(Routes.inbox, handleInboxPost);