diff --git a/server/federation/comments.js b/server/federation/comments.js index ce7a61f9..319b307b 100644 --- a/server/federation/comments.js +++ b/server/federation/comments.js @@ -1,25 +1,26 @@ const { event: Event, comment: Comment } = require('../api/models') const config = require('config') +const debug = require('debug')('fediverse:comment') module.exports = { - async create (body) { + async create (req, res) { //search for related event const inReplyTo = body.object.inReplyTo - const event_id = inReplyTo.match(`${config.baseurl}/federation/m/(.*)`)[1] + const match = inReplyTo.match(`${config.baseurl}/federation/m/(.*)`) + if (!match || match.length<2) return res.status(404).send('Event not found!') + const event = await Event.findByPk(Number(match[1])) - console.error(event_id) - const event = await Event.findByPk(event_id) - if (!event) { - return console.error('event not found!') - } + if (!event) return res.status(404).send('Event not found!') + debug('comment from %s to %s', req.body.actor, event.titles) - return await Comment.create({ - activitypub_id: body.object.id, - data: body.object, - eventId: event.id - }) + await Comment.create({ + activitypub_id: body.object.id, + data: body.object, + eventId: event.id + }) + res.sendStatus(201) } } diff --git a/server/federation/index.js b/server/federation/index.js index 2c998000..15199762 100644 --- a/server/federation/index.js +++ b/server/federation/index.js @@ -62,8 +62,7 @@ router.post('/u/:name/inbox', Helpers.verifySignature, async (req, res) => { case 'Create': // this is a reply if (b.object.type === 'Note' && b.object.inReplyTo) { - await Comments.create(b) - res.status(201).send() + await Comments.create(req, res) } else { console.error('Create what? ', b.object.type) } diff --git a/server/federation/webfinger.js b/server/federation/webfinger.js index e12d4b22..7032822b 100644 --- a/server/federation/webfinger.js +++ b/server/federation/webfinger.js @@ -96,12 +96,12 @@ router.get('/nodeinfo', async (req, res) => { // Handle 404 router.use(function(req, res) { - res.send('404: Page not Found', 404) + res.status(404).send('404: Page not Found') }) // Handle 500 router.use(function(error, req, res, next) { - res.send('500: Internal Server Error', 500) + res.status(500).send('500: Internal Server Error') }) module.exports = router