mirror of
https://github.com/Permissionless-Software-Foundation/x402-base-facilitator.git
synced 2026-09-21 16:52:01 -07:00
Prototyping download REST API
This commit is contained in:
@@ -31,6 +31,7 @@ class IpfsRESTControllerLib {
|
||||
this.handleError = this.handleError.bind(this)
|
||||
this.connect = this.connect.bind(this)
|
||||
this.getThisNode = this.getThisNode.bind(this)
|
||||
this.downloadFile = this.downloadFile.bind(this)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -123,6 +124,18 @@ class IpfsRESTControllerLib {
|
||||
}
|
||||
}
|
||||
|
||||
async downloadFile(ctx) {
|
||||
try {
|
||||
const {cid} = ctx.params
|
||||
|
||||
const file = await this.adapters.ipfs.ipfs.blockstore.get(cid)
|
||||
return file
|
||||
} catch(err) {
|
||||
wlogger.error('Error in ipfs/controller.js/downloadFile(): ', err)
|
||||
this.handleError(ctx, err)
|
||||
}
|
||||
}
|
||||
|
||||
// DRY error handler
|
||||
handleError (ctx, err) {
|
||||
// If an HTTP status is specified by the buisiness logic, use that.
|
||||
|
||||
@@ -56,6 +56,7 @@ class IpfsRouter {
|
||||
this.router.post('/relays', this.ipfsRESTController.getRelays)
|
||||
this.router.post('/connect', this.ipfsRESTController.connect)
|
||||
this.router.get('/node', this.ipfsRESTController.getThisNode)
|
||||
this.router.get('/download/:cid', this.ipfsRESTController.downloadFile)
|
||||
|
||||
// Attach the Controller routes to the Koa app.
|
||||
app.use(this.router.routes())
|
||||
|
||||
Reference in New Issue
Block a user