[fix] fedi outbox

This commit is contained in:
les
2019-12-18 14:44:09 +01:00
parent ee1482b9cb
commit 8ee1c6dc08
3 changed files with 9 additions and 13 deletions

View File

@@ -15,4 +15,4 @@ module.exports = (sequelize, DataTypes) => {
} }
return APUser return APUser
} }

View File

@@ -31,7 +31,7 @@ router.get('/m/:event_id', async (req, res) => {
const event_id = req.params.event_id const event_id = req.params.event_id
if (req.accepts('html')) { return res.redirect(301, `/event/${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') } if (!event) { return res.status(404).send('Not found') }
return res.json(event.toNoteAP(event.user.username)) return res.json(event.toNoteAP(event.user.username))
}) })

View File

@@ -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 config = require('config')
const debug = require('debug')('fediverse:user') const debug = require('debug')('fediverse:user')
@@ -48,7 +48,7 @@ module.exports = {
res.json(ret) res.json(ret)
}, },
async followers(req, res) { async followers (req, res) {
// TODO // TODO
const name = req.params.name const name = req.params.name
const page = req.query.page const page = req.query.page
@@ -89,12 +89,9 @@ module.exports = {
const page = req.query.page const page = req.query.page
if (!name) { return res.status(400).send('Bad request.') } if (!name) { return res.status(400).send('Bad request.') }
const user = await User.findOne({ if (name !== req.settings.instance_name) { return res.status(404).send(`No record found for ${name}`) }
include: [ { model: Event, include: [ Place, Tag ] } ],
where: { username: 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') debug('Inside outbox, should return all events from this user')
@@ -105,7 +102,7 @@ module.exports = {
'@context': ['https://www.w3.org/ns/activitystreams'], '@context': ['https://www.w3.org/ns/activitystreams'],
id: `${config.baseurl}/federation/u/${name}/outbox`, id: `${config.baseurl}/federation/u/${name}/outbox`,
type: 'OrderedCollection', type: 'OrderedCollection',
totalItems: user.events.length, totalItems: events.length,
first: `${config.baseurl}/federation/u/${name}/outbox?page=true`, first: `${config.baseurl}/federation/u/${name}/outbox?page=true`,
last: `${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' }], '@context': ['https://www.w3.org/ns/activitystreams', { Hashtag: 'as:Hashtag' }],
id: `${config.baseurl}/federation/u/${name}/outbox?page=${page}`, id: `${config.baseurl}/federation/u/${name}/outbox?page=${page}`,
type: 'OrderedCollectionPage', type: 'OrderedCollectionPage',
totalItems: user.events.length, totalItems: events.length,
partOf: `${config.baseurl}/federation/u/${name}/outbox`, partOf: `${config.baseurl}/federation/u/${name}/outbox`,
orderedItems: user.events.map(e => ({ orderedItems: events.map(e => ({ ...e.toNoteAP(name), actor: `${config.baseurl}/federation/u/${name}` }))
...e.toNoteAP(user.username), actor: `${config.baseurl}/federation/u/${user.username}` }))
// user.events.map(e => ({ // user.events.map(e => ({
// id: `${config.baseurl}/federation/m/${e.id}#create`, // id: `${config.baseurl}/federation/m/${e.id}#create`,
// type: 'Create', // type: 'Create',