123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- const { discover } = require('@joystream/service-discovery')
- const debug = require('debug')('joystream:colossus:api:discovery')
- const MAX_CACHE_AGE = 30 * 60 * 1000
- const USE_CACHE = true
- module.exports = function (runtime) {
- const doc = {
-
- parameters: [
- {
- name: 'id',
- in: 'path',
- required: true,
- description: 'Actor accouuntId',
- schema: {
- type: 'string',
- },
- },
- ],
-
- async get(req, res) {
- let parsedId
- try {
- parsedId = parseInt(req.params.id)
- } catch (err) {
- return res.status(400).end()
- }
- const id = parsedId
- let cacheMaxAge = req.query.max_age
- if (cacheMaxAge) {
- try {
- cacheMaxAge = parseInt(cacheMaxAge)
- } catch (err) {
- cacheMaxAge = MAX_CACHE_AGE
- }
- } else {
- cacheMaxAge = 0
- }
-
- try {
- debug(`resolving ${id}`)
- const info = await discover.discover(id, runtime, USE_CACHE, cacheMaxAge)
- if (info === null) {
- debug('info not found')
- res.status(404).end()
- } else {
- res.status(200).send(info)
- }
- } catch (err) {
- debug(`${err}`)
- res.status(404).end()
- }
- },
- }
-
- doc.get.apiDoc = {
- description: 'Resolve Service Information',
- operationId: 'discover',
-
- responses: {
- 200: {
- description: 'Wrapped JSON Service Information',
- content: {
- 'application/json': {
- schema: {
- required: ['serialized'],
- properties: {
- serialized: {
- type: 'string',
- },
- signature: {
- type: 'string',
- },
- },
- },
- },
- },
- },
- },
- }
- return doc
- }
|