Migrate from docs.rs' builds API to status API (#9422)

This commit is contained in:
Nemo157
2023-07-30 18:01:50 +02:00
committed by GitHub
parent fcb83cacec
commit 2e2959a12c

View File

@@ -1,14 +1,9 @@
import Joi from 'joi'
import { BaseJsonService } from '../index.js'
const schema = Joi.array()
.items(
Joi.object({
build_status: Joi.boolean().required(),
}),
)
.min(1)
.required()
const schema = Joi.object({
doc_status: Joi.boolean().required(),
}).required()
export default class DocsRs extends BaseJsonService {
static category = 'build'
@@ -17,19 +12,19 @@ export default class DocsRs extends BaseJsonService {
{
title: 'docs.rs',
namedParams: { crate: 'regex', version: 'latest' },
staticPreview: this.render({ version: 'latest', buildStatus: true }),
staticPreview: this.render({ version: 'latest', docStatus: true }),
keywords: ['rust'],
},
]
static defaultBadgeData = { label: 'docs' }
static render({ buildStatus, version }) {
static render({ docStatus, version }) {
let label = `docs@${version}`
if (version === 'latest') {
label = 'docs'
}
if (buildStatus) {
if (docStatus) {
return {
label,
message: 'passing',
@@ -47,12 +42,12 @@ export default class DocsRs extends BaseJsonService {
async fetch({ crate, version }) {
return await this._requestJson({
schema,
url: `https://docs.rs/crate/${crate}/${version}/builds.json`,
url: `https://docs.rs/crate/${crate}/${version}/status.json`,
})
}
async handle({ crate, version = 'latest' }) {
const [{ build_status: buildStatus }] = await this.fetch({ crate, version })
return this.constructor.render({ version, buildStatus })
const { doc_status: docStatus } = await this.fetch({ crate, version })
return this.constructor.render({ version, docStatus })
}
}