diff --git a/server/api/models/ap_user.js b/server/api/models/ap_user.js index 199175e7..870bfe4c 100644 --- a/server/api/models/ap_user.js +++ b/server/api/models/ap_user.js @@ -15,4 +15,4 @@ module.exports = (sequelize, DataTypes) => { } return APUser -} \ No newline at end of file +} diff --git a/server/federation/index.js b/server/federation/index.js index 569cf126..269d85d4 100644 --- a/server/federation/index.js +++ b/server/federation/index.js @@ -31,7 +31,7 @@ router.get('/m/:event_id', async (req, res) => { const event_id = req.params.event_id if (req.accepts('html')) { return res.redirect(301, `/event/${event_id}`) } - const event = await Event.findByPk(req.params.event_id, { include: [ User, Tag, Place ] }) + const event = await Event.findByPk(req.params.event_id, { include: [User, Tag, Place] }) if (!event) { return res.status(404).send('Not found') } return res.json(event.toNoteAP(event.user.username)) }) diff --git a/server/federation/users.js b/server/federation/users.js index b0f2d260..1cfd320e 100644 --- a/server/federation/users.js +++ b/server/federation/users.js @@ -1,4 +1,4 @@ -const { User, Event, Place, Tag, APUser } = require('../api/models') +const { event: Event, place: Place, tag: Tag, ap_user: APUser } = require('../api/models') const config = require('config') const debug = require('debug')('fediverse:user') @@ -48,7 +48,7 @@ module.exports = { res.json(ret) }, - async followers(req, res) { + async followers (req, res) { // TODO const name = req.params.name const page = req.query.page @@ -89,12 +89,9 @@ module.exports = { const page = req.query.page if (!name) { return res.status(400).send('Bad request.') } - const user = await User.findOne({ - include: [ { model: Event, include: [ Place, Tag ] } ], - where: { username: name } - }) + if (name !== req.settings.instance_name) { return res.status(404).send(`No record found for ${name}`) } - if (!user) { return res.status(404).send(`No record found for ${name}`) } + const events = await Event.findAll( { include: [Tag, Place] }) debug('Inside outbox, should return all events from this user') @@ -105,7 +102,7 @@ module.exports = { '@context': ['https://www.w3.org/ns/activitystreams'], id: `${config.baseurl}/federation/u/${name}/outbox`, type: 'OrderedCollection', - totalItems: user.events.length, + totalItems: events.length, first: `${config.baseurl}/federation/u/${name}/outbox?page=true`, last: `${config.baseurl}/federation/u/${name}/outbox?page=true` }) @@ -116,10 +113,9 @@ module.exports = { '@context': ['https://www.w3.org/ns/activitystreams', { Hashtag: 'as:Hashtag' }], id: `${config.baseurl}/federation/u/${name}/outbox?page=${page}`, type: 'OrderedCollectionPage', - totalItems: user.events.length, + totalItems: events.length, partOf: `${config.baseurl}/federation/u/${name}/outbox`, - orderedItems: user.events.map(e => ({ - ...e.toNoteAP(user.username), actor: `${config.baseurl}/federation/u/${user.username}` })) + orderedItems: events.map(e => ({ ...e.toNoteAP(name), actor: `${config.baseurl}/federation/u/${name}` })) // user.events.map(e => ({ // id: `${config.baseurl}/federation/m/${e.id}#create`, // type: 'Create',