Files
shields/services/eclipse-marketplace/eclipse-marketplace-favorites.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

47 lines
1.1 KiB
JavaScript

import Joi from 'joi'
import { pathParams } from '../index.js'
import { nonNegativeInteger } from '../validators.js'
import EclipseMarketplaceBase from './eclipse-marketplace-base.js'
const favoritesResponseSchema = Joi.object({
marketplace: Joi.object({
node: Joi.object({
favorited: nonNegativeInteger,
}),
}),
}).required()
export default class EclipseMarketplaceFavorites extends EclipseMarketplaceBase {
static category = 'other'
static route = this.buildRoute('eclipse-marketplace/favorites')
static openApi = {
'/eclipse-marketplace/favorites/{name}': {
get: {
summary: 'Eclipse Marketplace Favorites',
parameters: pathParams({
name: 'name',
example: 'notepad4e',
}),
},
},
}
static defaultBadgeData = { label: 'favorites' }
static render({ favorited }) {
return {
message: favorited,
color: 'brightgreen',
}
}
async handle({ name }) {
const { marketplace } = await this.fetch({
name,
schema: favoritesResponseSchema,
})
const favorited = marketplace.node.favorited
return this.constructor.render({ favorited })
}
}