Files
shields/services/eclipse-marketplace/eclipse-marketplace-version.service.js
chris48s 478b1083f2 migrate examples to openApi part 3; affects [conan cookbook coverity cpan debian docker docsrs dub eclipse] (#9429)
* migrate some services from examples to openApi

* improve and de-dupe service titles

* revert changes to depfu
2023-08-17 20:32:01 +00:00

44 lines
1.1 KiB
JavaScript

import Joi from 'joi'
import { pathParams } from '../index.js'
import { renderVersionBadge } from '../version.js'
import EclipseMarketplaceBase from './eclipse-marketplace-base.js'
const versionResponseSchema = Joi.object({
marketplace: Joi.object({
node: Joi.object({
version: Joi.string().required(),
}),
}),
}).required()
export default class EclipseMarketplaceVersion extends EclipseMarketplaceBase {
static category = 'version'
static route = this.buildRoute('eclipse-marketplace/v')
static openApi = {
'/eclipse-marketplace/v/{name}': {
get: {
summary: 'Eclipse Marketplace Version',
parameters: pathParams({
name: 'name',
example: 'notepad4e',
}),
},
},
}
static defaultBadgeData = { label: 'eclipse marketplace' }
static render({ version }) {
return renderVersionBadge({ version })
}
async handle({ name }) {
const { marketplace } = await this.fetch({
name,
schema: versionResponseSchema,
})
const version = marketplace.node.version
return this.constructor.render({ version })
}
}