mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
93 lines
2.7 KiB
TypeScript
93 lines
2.7 KiB
TypeScript
import { sendCollection } from '../utils/collection'
|
|
import express from 'express'
|
|
import { serveUser } from './serveUser'
|
|
import { activityPub } from '../ActivityPub'
|
|
import verify from './verify'
|
|
|
|
const router = express.Router()
|
|
const debug = require('debug')('ea:user')
|
|
|
|
router.get('/:name', async function (req, res, next) {
|
|
debug('inside user.js -> serveUser')
|
|
await serveUser(req, res, next)
|
|
})
|
|
|
|
router.get('/:name/following', (req, res) => {
|
|
debug('inside user.js -> serveFollowingCollection')
|
|
const name = req.params.name
|
|
if (!name) {
|
|
res.status(400).send('Bad request! Please specify a name.')
|
|
} else {
|
|
const collectionName = req.query.page ? 'followingPage' : 'following'
|
|
sendCollection(collectionName, req, res)
|
|
}
|
|
})
|
|
|
|
router.get('/:name/followers', (req, res) => {
|
|
debug('inside user.js -> serveFollowersCollection')
|
|
const name = req.params.name
|
|
if (!name) {
|
|
return res.status(400).send('Bad request! Please specify a name.')
|
|
} else {
|
|
const collectionName = req.query.page ? 'followersPage' : 'followers'
|
|
sendCollection(collectionName, req, res)
|
|
}
|
|
})
|
|
|
|
router.get('/:name/outbox', (req, res) => {
|
|
debug('inside user.js -> serveOutboxCollection')
|
|
const name = req.params.name
|
|
if (!name) {
|
|
return res.status(400).send('Bad request! Please specify a name.')
|
|
} else {
|
|
const collectionName = req.query.page ? 'outboxPage' : 'outbox'
|
|
sendCollection(collectionName, req, res)
|
|
}
|
|
})
|
|
|
|
router.post('/:name/inbox', verify, async function (req, res, next) {
|
|
debug(`body = ${JSON.stringify(req.body, null, 2)}`)
|
|
debug(`actorId = ${req.body.actor}`)
|
|
// const result = await saveActorId(req.body.actor)
|
|
switch (req.body.type) {
|
|
case 'Create':
|
|
await activityPub.handleCreateActivity(req.body).catch(next)
|
|
break
|
|
case 'Undo':
|
|
await activityPub.handleUndoActivity(req.body).catch(next)
|
|
break
|
|
// case 'Follow':
|
|
// await activityPub.handleFollowActivity(req.body).catch(next)
|
|
// break
|
|
case 'Delete':
|
|
await activityPub.handleDeleteActivity(req.body).catch(next)
|
|
break
|
|
/* eslint-disable */
|
|
case 'Update':
|
|
await activityPub.handleUpdateActivity(req.body).catch(next)
|
|
break
|
|
case 'Accept':
|
|
await activityPub.handleAcceptActivity(req.body).catch(next)
|
|
case 'Reject':
|
|
// Do nothing
|
|
break
|
|
case 'Add':
|
|
break
|
|
case 'Remove':
|
|
break
|
|
case 'Like':
|
|
await activityPub.handleLikeActivity(req.body).catch(next)
|
|
break
|
|
case 'Dislike':
|
|
await activityPub.handleDislikeActivity(req.body).catch(next)
|
|
break
|
|
case 'Announce':
|
|
debug('else!!')
|
|
debug(JSON.stringify(req.body, null, 2))
|
|
}
|
|
/* eslint-enable */
|
|
res.status(200).end()
|
|
})
|
|
|
|
export default router
|