2026-06-03 12:00:28 -07:00
|
|
|
/*
|
|
|
|
|
REST API router for /posts routes.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import Router from 'koa-router'
|
|
|
|
|
import PostsRESTControllerLib from './controller.js'
|
|
|
|
|
|
|
|
|
|
class PostsRouter {
|
|
|
|
|
constructor (localConfig = {}) {
|
|
|
|
|
this.adapters = localConfig.adapters
|
|
|
|
|
this.useCases = localConfig.useCases
|
|
|
|
|
if (!this.adapters) {
|
|
|
|
|
throw new Error('Adapters required when instantiating Posts REST Controller.')
|
|
|
|
|
}
|
|
|
|
|
if (!this.useCases) {
|
|
|
|
|
throw new Error('Use Cases required when instantiating Posts REST Controller.')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.postsRESTController = new PostsRESTControllerLib({
|
|
|
|
|
adapters: this.adapters,
|
|
|
|
|
useCases: this.useCases
|
|
|
|
|
})
|
|
|
|
|
this.router = new Router({ prefix: '/posts' })
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
attach (app) {
|
|
|
|
|
this.router.get('/recent', this.postsRESTController.getRecentPosts)
|
2026-06-03 15:13:01 -07:00
|
|
|
this.router.get('/by/:addr', this.postsRESTController.getPostsByAddr)
|
2026-07-16 14:51:14 -07:00
|
|
|
this.router.get('/:txid/thread',this.postsRESTController.getPostThread)
|
2026-06-03 12:00:28 -07:00
|
|
|
app.use(this.router.routes())
|
|
|
|
|
app.use(this.router.allowedMethods())
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default PostsRouter
|