Files
shields/services/cookbook/cookbook.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

35 lines
946 B
JavaScript

import Joi from 'joi'
import { renderVersionBadge } from '../version.js'
import { BaseJsonService, pathParams } from '../index.js'
const schema = Joi.object({ version: Joi.string().required() }).required()
export default class Cookbook extends BaseJsonService {
static category = 'version'
static route = { base: 'cookbook/v', pattern: ':cookbook' }
static openApi = {
'/cookbook/v/{cookbook}': {
get: {
summary: 'Chef cookbook',
parameters: pathParams({
name: 'cookbook',
example: 'chef-sugar',
}),
},
},
}
static defaultBadgeData = { label: 'cookbook' }
async fetch({ cookbook }) {
const url = `https://supermarket.getchef.com/api/v1/cookbooks/${cookbook}/versions/latest`
return this._requestJson({ schema, url })
}
async handle({ cookbook }) {
const { version } = await this.fetch({ cookbook })
return renderVersionBadge({ version })
}
}