From 692829f91c7b75004e920f11e630d70bd273342c Mon Sep 17 00:00:00 2001 From: chris48s <chris48s@users.noreply.github.com> Date: Sat, 19 Aug 2023 05:33:27 +0100 Subject: [PATCH] migrate examples to openApi part 6; affects [opencollective opm ossf powershell pub pypi reddit repology] (#9462) * migrate some services from examples to openApi * improve and de-dupe service titles --- .../opencollective-all.service.js | 18 ++++++----- .../opencollective-backers.service.js | 18 ++++++----- .../opencollective-sponsors.service.js | 18 ++++++----- services/opm/opm-version.service.js | 25 ++++++++++------ .../ossf-scorecard/ossf-scorecard.service.js | 30 ++++++++++++------- .../powershellgallery.service.js | 20 +++++++------ services/pub/pub-publisher.service.js | 19 +++++++----- services/pypi/pypi-format.service.js | 19 +++++++----- services/pypi/pypi-implementation.service.js | 19 +++++++----- services/pypi/pypi-license.service.js | 19 +++++++----- services/pypi/pypi-python-versions.service.js | 18 ++++++----- services/pypi/pypi-status.service.js | 19 +++++++----- services/pypi/pypi-version.service.js | 19 +++++++----- services/pypi/pypi-wheel.service.js | 19 +++++++----- .../reddit/subreddit-subscribers.service.js | 21 +++++++------ .../repology/repology-repositories.service.js | 18 ++++++----- 16 files changed, 189 insertions(+), 130 deletions(-) diff --git a/services/opencollective/opencollective-all.service.js b/services/opencollective/opencollective-all.service.js index dac3229f97..38e6ecb7ed 100644 --- a/services/opencollective/opencollective-all.service.js +++ b/services/opencollective/opencollective-all.service.js @@ -1,16 +1,20 @@ +import { pathParams } from '../index.js' import OpencollectiveBase from './opencollective-base.js' export default class OpencollectiveAll extends OpencollectiveBase { static route = this.buildRoute('all') - static examples = [ - { - title: 'Open Collective backers and sponsors', - namedParams: { collective: 'shields' }, - staticPreview: this.render(35), - keywords: ['opencollective'], + static openApi = { + '/opencollective/all/{collective}': { + get: { + summary: 'Open Collective backers and sponsors', + parameters: pathParams({ + name: 'collective', + example: 'shields', + }), + }, }, - ] + } static defaultBadgeData = { label: 'backers and sponsors', diff --git a/services/opencollective/opencollective-backers.service.js b/services/opencollective/opencollective-backers.service.js index 8c1f7321e7..6e5204a42a 100644 --- a/services/opencollective/opencollective-backers.service.js +++ b/services/opencollective/opencollective-backers.service.js @@ -1,16 +1,20 @@ +import { pathParams } from '../index.js' import OpencollectiveBase from './opencollective-base.js' export default class OpencollectiveBackers extends OpencollectiveBase { static route = this.buildRoute('backers') - static examples = [ - { - title: 'Open Collective backers', - namedParams: { collective: 'shields' }, - staticPreview: this.render(25), - keywords: ['opencollective'], + static openApi = { + '/opencollective/backers/{collective}': { + get: { + summary: 'Open Collective backers', + parameters: pathParams({ + name: 'collective', + example: 'shields', + }), + }, }, - ] + } static defaultBadgeData = { label: 'backers', diff --git a/services/opencollective/opencollective-sponsors.service.js b/services/opencollective/opencollective-sponsors.service.js index 30d486dbdc..c8246370a8 100644 --- a/services/opencollective/opencollective-sponsors.service.js +++ b/services/opencollective/opencollective-sponsors.service.js @@ -1,16 +1,20 @@ +import { pathParams } from '../index.js' import OpencollectiveBase from './opencollective-base.js' export default class OpencollectiveSponsors extends OpencollectiveBase { static route = this.buildRoute('sponsors') - static examples = [ - { - title: 'Open Collective sponsors', - namedParams: { collective: 'shields' }, - staticPreview: this.render(10), - keywords: ['opencollective'], + static openApi = { + '/opencollective/sponsors/{collective}': { + get: { + summary: 'Open Collective sponsors', + parameters: pathParams({ + name: 'collective', + example: 'shields', + }), + }, }, - ] + } static defaultBadgeData = { label: 'sponsors', diff --git a/services/opm/opm-version.service.js b/services/opm/opm-version.service.js index e053588628..03d66950b6 100644 --- a/services/opm/opm-version.service.js +++ b/services/opm/opm-version.service.js @@ -1,5 +1,5 @@ import { renderVersionBadge } from '../version.js' -import { BaseService, NotFound, InvalidResponse } from '../index.js' +import { BaseService, NotFound, InvalidResponse, pathParams } from '../index.js' export default class OpmVersion extends BaseService { static category = 'version' @@ -9,16 +9,23 @@ export default class OpmVersion extends BaseService { pattern: ':user/:moduleName', } - static examples = [ - { - title: 'OPM', - namedParams: { - user: 'openresty', - moduleName: 'lua-resty-lrucache', + static openApi = { + '/opm/v/{user}/{moduleName}': { + get: { + summary: 'OPM Version', + parameters: pathParams( + { + name: 'user', + example: 'openresty', + }, + { + name: 'moduleName', + example: 'lua-resty-lrucache', + }, + ), }, - staticPreview: renderVersionBadge({ version: 'v0.08' }), }, - ] + } static defaultBadgeData = { label: 'opm', diff --git a/services/ossf-scorecard/ossf-scorecard.service.js b/services/ossf-scorecard/ossf-scorecard.service.js index b729f52c13..1ee57a0401 100644 --- a/services/ossf-scorecard/ossf-scorecard.service.js +++ b/services/ossf-scorecard/ossf-scorecard.service.js @@ -1,5 +1,5 @@ import Joi from 'joi' -import { BaseJsonService } from '../index.js' +import { BaseJsonService, pathParams } from '../index.js' import { colorScale } from '../color-formatters.js' const schema = Joi.object({ @@ -16,17 +16,27 @@ export default class OSSFScorecard extends BaseJsonService { static route = { base: 'ossf-scorecard', pattern: ':host/:orgName/:repoName' } - static examples = [ - { - title: 'OSSF-Scorecard Score', - namedParams: { - host: 'github.com', - orgName: 'rohankh532', - repoName: 'org-workflow-add', + static openApi = { + '/ossf-scorecard/{host}/{orgName}/{repoName}': { + get: { + summary: 'OSSF-Scorecard Score', + parameters: pathParams( + { + name: 'host', + example: 'github.com', + }, + { + name: 'orgName', + example: 'rohankh532', + }, + { + name: 'repoName', + example: 'org-workflow-add', + }, + ), }, - staticPreview: this.render({ score: '7.5' }), }, - ] + } static defaultBadgeData = { label: 'score' } diff --git a/services/powershellgallery/powershellgallery.service.js b/services/powershellgallery/powershellgallery.service.js index ffa57ed236..26c8621614 100644 --- a/services/powershellgallery/powershellgallery.service.js +++ b/services/powershellgallery/powershellgallery.service.js @@ -1,5 +1,5 @@ import { fetch, createServiceFamily } from '../nuget/nuget-v2-service-family.js' -import { BaseXmlService } from '../index.js' +import { BaseXmlService, pathParams } from '../index.js' const WINDOWS_TAG_NAME = 'windows' const MACOS_TAG_NAME = 'macos' @@ -32,15 +32,17 @@ class PowershellGalleryPlatformSupport extends BaseXmlService { pattern: ':packageName', } - static examples = [ - { - title: 'PowerShell Gallery', - namedParams: { packageName: 'PackageManagement' }, - staticPreview: this.render({ - platforms: ['windows', 'macos', 'linux'], - }), + static openApi = { + '/powershellgallery/p/{packageName}': { + get: { + summary: 'PowerShell Gallery Platform Support', + parameters: pathParams({ + name: 'packageName', + example: 'PackageManagement', + }), + }, }, - ] + } static defaultBadgeData = { label: 'platform', diff --git a/services/pub/pub-publisher.service.js b/services/pub/pub-publisher.service.js index bc22714f13..36f01074d2 100644 --- a/services/pub/pub-publisher.service.js +++ b/services/pub/pub-publisher.service.js @@ -1,5 +1,5 @@ import Joi from 'joi' -import { BaseJsonService } from '../index.js' +import { BaseJsonService, pathParams } from '../index.js' const schema = Joi.object({ publisherId: Joi.string().allow(null).required(), @@ -13,14 +13,17 @@ export class PubPublisher extends BaseJsonService { pattern: ':packageName', } - static examples = [ - { - title: 'Pub Publisher', - namedParams: { packageName: 'path' }, - staticPreview: this.render({ publisher: 'dart.dev' }), - keywords: ['dart', 'dartlang'], + static openApi = { + '/pub/publisher/{packageName}': { + get: { + summary: 'Pub Publisher', + parameters: pathParams({ + name: 'packageName', + example: 'path', + }), + }, }, - ] + } static _cacheLength = 3600 diff --git a/services/pypi/pypi-format.service.js b/services/pypi/pypi-format.service.js index cef3285e48..e1d02bc9fe 100644 --- a/services/pypi/pypi-format.service.js +++ b/services/pypi/pypi-format.service.js @@ -1,3 +1,4 @@ +import { pathParams } from '../index.js' import PypiBase from './pypi-base.js' import { getPackageFormats } from './pypi-helpers.js' @@ -6,15 +7,17 @@ export default class PypiFormat extends PypiBase { static route = this.buildRoute('pypi/format') - static examples = [ - { - title: 'PyPI - Format', - pattern: ':packageName', - namedParams: { packageName: 'Django' }, - staticPreview: this.render({ hasWheel: true }), - keywords: ['python'], + static openApi = { + '/pypi/format/{packageName}': { + get: { + summary: 'PyPI - Format', + parameters: pathParams({ + name: 'packageName', + example: 'Django', + }), + }, }, - ] + } static defaultBadgeData = { label: 'format' } diff --git a/services/pypi/pypi-implementation.service.js b/services/pypi/pypi-implementation.service.js index bf03542989..8da1079c15 100644 --- a/services/pypi/pypi-implementation.service.js +++ b/services/pypi/pypi-implementation.service.js @@ -1,3 +1,4 @@ +import { pathParams } from '../index.js' import PypiBase from './pypi-base.js' import { parseClassifiers } from './pypi-helpers.js' @@ -6,15 +7,17 @@ export default class PypiImplementation extends PypiBase { static route = this.buildRoute('pypi/implementation') - static examples = [ - { - title: 'PyPI - Implementation', - pattern: ':packageName', - namedParams: { packageName: 'Django' }, - staticPreview: this.render({ implementations: ['cpython'] }), - keywords: ['python'], + static openApi = { + '/pypi/implementation/{packageName}': { + get: { + summary: 'PyPI - Implementation', + parameters: pathParams({ + name: 'packageName', + example: 'Django', + }), + }, }, - ] + } static defaultBadgeData = { label: 'implementation' } diff --git a/services/pypi/pypi-license.service.js b/services/pypi/pypi-license.service.js index c2d2a3228c..4bb89dc498 100644 --- a/services/pypi/pypi-license.service.js +++ b/services/pypi/pypi-license.service.js @@ -1,3 +1,4 @@ +import { pathParams } from '../index.js' import { renderLicenseBadge } from '../licenses.js' import PypiBase from './pypi-base.js' import { getLicenses } from './pypi-helpers.js' @@ -7,15 +8,17 @@ export default class PypiLicense extends PypiBase { static route = this.buildRoute('pypi/l') - static examples = [ - { - title: 'PyPI - License', - pattern: ':packageName', - namedParams: { packageName: 'Django' }, - staticPreview: this.render({ licenses: ['BSD'] }), - keywords: ['python'], + static openApi = { + '/pypi/l/{packageName}': { + get: { + summary: 'PyPI - License', + parameters: pathParams({ + name: 'packageName', + example: 'Django', + }), + }, }, - ] + } static render({ licenses }) { return renderLicenseBadge({ licenses }) diff --git a/services/pypi/pypi-python-versions.service.js b/services/pypi/pypi-python-versions.service.js index 58651ab3d3..49db5cb050 100644 --- a/services/pypi/pypi-python-versions.service.js +++ b/services/pypi/pypi-python-versions.service.js @@ -1,4 +1,5 @@ import semver from 'semver' +import { pathParams } from '../index.js' import PypiBase from './pypi-base.js' import { parseClassifiers } from './pypi-helpers.js' @@ -7,14 +8,17 @@ export default class PypiPythonVersions extends PypiBase { static route = this.buildRoute('pypi/pyversions') - static examples = [ - { - title: 'PyPI - Python Version', - pattern: ':packageName', - namedParams: { packageName: 'Django' }, - staticPreview: this.render({ versions: ['3.5', '3.6', '3.7'] }), + static openApi = { + '/pypi/pyversions/{packageName}': { + get: { + summary: 'PyPI - Python Version', + parameters: pathParams({ + name: 'packageName', + example: 'Django', + }), + }, }, - ] + } static defaultBadgeData = { label: 'python' } diff --git a/services/pypi/pypi-status.service.js b/services/pypi/pypi-status.service.js index 41586a90a5..12d85e39cc 100644 --- a/services/pypi/pypi-status.service.js +++ b/services/pypi/pypi-status.service.js @@ -1,3 +1,4 @@ +import { pathParams } from '../index.js' import PypiBase from './pypi-base.js' import { parseClassifiers } from './pypi-helpers.js' @@ -6,15 +7,17 @@ export default class PypiStatus extends PypiBase { static route = this.buildRoute('pypi/status') - static examples = [ - { - title: 'PyPI - Status', - pattern: ':packageName', - namedParams: { packageName: 'Django' }, - staticPreview: this.render({ status: 'stable' }), - keywords: ['python'], + static openApi = { + '/pypi/status/{packageName}': { + get: { + summary: 'PyPI - Status', + parameters: pathParams({ + name: 'packageName', + example: 'Django', + }), + }, }, - ] + } static defaultBadgeData = { label: 'status' } diff --git a/services/pypi/pypi-version.service.js b/services/pypi/pypi-version.service.js index e5a706f02e..04e018be97 100644 --- a/services/pypi/pypi-version.service.js +++ b/services/pypi/pypi-version.service.js @@ -1,3 +1,4 @@ +import { pathParams } from '../index.js' import { pep440VersionColor } from '../color-formatters.js' import { renderVersionBadge } from '../version.js' import PypiBase from './pypi-base.js' @@ -7,15 +8,17 @@ export default class PypiVersion extends PypiBase { static route = this.buildRoute('pypi/v') - static examples = [ - { - title: 'PyPI', - pattern: ':packageName', - namedParams: { packageName: 'nine' }, - staticPreview: this.render({ version: '1.0.0' }), - keywords: ['python'], + static openApi = { + '/pypi/v/{packageName}': { + get: { + summary: 'PyPI - Version', + parameters: pathParams({ + name: 'packageName', + example: 'nine', + }), + }, }, - ] + } static defaultBadgeData = { label: 'pypi' } diff --git a/services/pypi/pypi-wheel.service.js b/services/pypi/pypi-wheel.service.js index a81e2e4d42..ce151cb055 100644 --- a/services/pypi/pypi-wheel.service.js +++ b/services/pypi/pypi-wheel.service.js @@ -1,3 +1,4 @@ +import { pathParams } from '../index.js' import PypiBase from './pypi-base.js' import { getPackageFormats } from './pypi-helpers.js' @@ -6,15 +7,17 @@ export default class PypiWheel extends PypiBase { static route = this.buildRoute('pypi/wheel') - static examples = [ - { - title: 'PyPI - Wheel', - pattern: ':packageName', - namedParams: { packageName: 'Django' }, - staticPreview: this.render({ hasWheel: true }), - keywords: ['python'], + static openApi = { + '/pypi/wheel/{packageName}': { + get: { + summary: 'PyPI - Wheel', + parameters: pathParams({ + name: 'packageName', + example: 'Django', + }), + }, }, - ] + } static defaultBadgeData = { label: 'wheel' } diff --git a/services/reddit/subreddit-subscribers.service.js b/services/reddit/subreddit-subscribers.service.js index 0f90807569..a0d00483c7 100644 --- a/services/reddit/subreddit-subscribers.service.js +++ b/services/reddit/subreddit-subscribers.service.js @@ -1,7 +1,7 @@ import Joi from 'joi' import { optionalNonNegativeInteger } from '../validators.js' import { metric } from '../text-formatters.js' -import { BaseJsonService, NotFound } from '../index.js' +import { BaseJsonService, NotFound, pathParams } from '../index.js' const schema = Joi.object({ data: Joi.object({ @@ -17,18 +17,17 @@ export default class RedditSubredditSubscribers extends BaseJsonService { pattern: ':subreddit', } - static examples = [ - { - title: 'Subreddit subscribers', - namedParams: { subreddit: 'drums' }, - staticPreview: { - label: 'follow r/drums', - message: '77k', - color: 'red', - style: 'social', + static openApi = { + '/reddit/subreddit-subscribers/{subreddit}': { + get: { + summary: 'Subreddit subscribers', + parameters: pathParams({ + name: 'subreddit', + example: 'drums', + }), }, }, - ] + } static _cacheLength = 7200 diff --git a/services/repology/repology-repositories.service.js b/services/repology/repology-repositories.service.js index 98b5e3ff55..bd89fc5ef1 100644 --- a/services/repology/repology-repositories.service.js +++ b/services/repology/repology-repositories.service.js @@ -1,7 +1,7 @@ import Joi from 'joi' import { metric } from '../text-formatters.js' import { nonNegativeInteger } from '../validators.js' -import { BaseSvgScrapingService } from '../index.js' +import { BaseSvgScrapingService, pathParams } from '../index.js' const schema = Joi.object({ message: nonNegativeInteger, @@ -15,13 +15,17 @@ export default class RepologyRepositories extends BaseSvgScrapingService { pattern: ':projectName', } - static examples = [ - { - title: 'Repology - Repositories', - namedParams: { projectName: 'starship' }, - staticPreview: this.render({ repositoryCount: '18' }), + static openApi = { + '/repology/repositories/{projectName}': { + get: { + summary: 'Repology - Repositories', + parameters: pathParams({ + name: 'projectName', + example: 'starship', + }), + }, }, - ] + } static defaultBadgeData = { label: 'repositories', -- GitLab