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.handleError = this.handleError.bind(this)
|
||||||
this.connect = this.connect.bind(this)
|
this.connect = this.connect.bind(this)
|
||||||
this.getThisNode = this.getThisNode.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
|
// DRY error handler
|
||||||
handleError (ctx, err) {
|
handleError (ctx, err) {
|
||||||
// If an HTTP status is specified by the buisiness logic, use that.
|
// 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('/relays', this.ipfsRESTController.getRelays)
|
||||||
this.router.post('/connect', this.ipfsRESTController.connect)
|
this.router.post('/connect', this.ipfsRESTController.connect)
|
||||||
this.router.get('/node', this.ipfsRESTController.getThisNode)
|
this.router.get('/node', this.ipfsRESTController.getThisNode)
|
||||||
|
this.router.get('/download/:cid', this.ipfsRESTController.downloadFile)
|
||||||
|
|
||||||
// Attach the Controller routes to the Koa app.
|
// Attach the Controller routes to the Koa app.
|
||||||
app.use(this.router.routes())
|
app.use(this.router.routes())
|
||||||
|
|||||||
Reference in New Issue
Block a user