Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate examples to openApi part 2; affects [archlinux bitcomponents bountysource cdnjs chrome clearlydefined clojars cocoapods coincap] #9428

Merged
merged 4 commits into from
Aug 9, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions services/archlinux/archlinux.service.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Joi from 'joi'
import { renderVersionBadge } from '../version.js'
import { BaseJsonService } from '../index.js'
import { BaseJsonService, pathParams } from '../index.js'

const schema = Joi.object({
pkgver: Joi.string().required(),
Expand All @@ -13,17 +13,27 @@ export default class ArchLinux extends BaseJsonService {
pattern: ':repository/:architecture/:packageName',
}

static examples = [
{
title: 'Arch Linux package',
namedParams: {
architecture: 'x86_64',
repository: 'core',
packageName: 'pacman',
static openApi = {
'/archlinux/v/{repository}/{architecture}/{packageName}': {
get: {
summary: 'Arch Linux package',
parameters: pathParams(
{
name: 'repository',
example: 'core',
},
{
name: 'architecture',
example: 'x86_64',
},
{
name: 'packageName',
example: 'pacman',
},
),
},
staticPreview: renderVersionBadge({ version: '5.1.3' }),
},
]
}

static defaultBadgeData = { label: 'arch linux' }

Expand Down
25 changes: 17 additions & 8 deletions services/bit/bit-components.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Joi from 'joi'
import { metric } from '../text-formatters.js'
import { nonNegativeInteger } from '../validators.js'
import { downloadCount } from '../color-formatters.js'
import { BaseJsonService } from '../index.js'
import { BaseJsonService, pathParams } from '../index.js'

const collectionSchema = Joi.object({
payload: Joi.object({
Expand All @@ -17,14 +17,23 @@ export default class BitComponents extends BaseJsonService {
pattern: ':owner/:collection',
}

static examples = [
{
title: 'bit',
namedParams: { owner: 'ramda', collection: 'ramda' },
staticPreview: this.render({ count: 330 }),
keywords: ['components'],
static openApi = {
'/bit/collection/total-components/{owner}/{collection}': {
get: {
summary: 'Bit',
parameters: pathParams(
{
name: 'owner',
example: 'ramda',
},
{
name: 'collection',
example: 'ramda',
},
),
},
},
]
}

static defaultBadgeData = { label: 'components' }

Expand Down
18 changes: 11 additions & 7 deletions services/bountysource/bountysource.service.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
import Joi from 'joi'
import { metric } from '../text-formatters.js'
import { BaseJsonService } from '../index.js'
import { BaseJsonService, pathParams } from '../index.js'

const schema = Joi.object({ activity_total: Joi.number().required() })

export default class Bountysource extends BaseJsonService {
static category = 'funding'
static route = { base: 'bountysource/team', pattern: ':team/activity' }

static examples = [
{
title: 'Bountysource',
namedParams: { team: 'mozilla-core' },
staticPreview: this.render({ total: 53000 }),
static openApi = {
'/bountysource/team/{team}/activity': {
get: {
summary: 'Bountysource',
parameters: pathParams({
name: 'team',
example: 'mozilla-core',
}),
},
},
]
}

static defaultBadgeData = { label: 'bounties' }

Expand Down
17 changes: 11 additions & 6 deletions services/cdnjs/cdnjs.service.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Joi from 'joi'
import { renderVersionBadge } from '../version.js'
import { BaseJsonService, NotFound } from '../index.js'
import { BaseJsonService, NotFound, pathParams } from '../index.js'

const cdnjsSchema = Joi.object({
// optional due to non-standard 'not found' condition
Expand All @@ -11,12 +11,17 @@ export default class Cdnjs extends BaseJsonService {
static category = 'version'
static route = { base: 'cdnjs/v', pattern: ':library' }

static examples = [
{
namedParams: { library: 'jquery' },
staticPreview: this.render({ version: '1.5.2' }),
static openApi = {
'/cdnjs/v/{library}': {
get: {
summary: 'Cdnjs',
parameters: pathParams({
name: 'library',
example: 'jquery',
}),
},
},
]
}

static defaultBadgeData = { label: 'cdnjs' }

Expand Down
18 changes: 11 additions & 7 deletions services/chrome-web-store/chrome-web-store-price.service.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
import { currencyFromCode } from '../text-formatters.js'
import { NotFound } from '../index.js'
import { NotFound, pathParams } from '../index.js'
import BaseChromeWebStoreService from './chrome-web-store-base.js'

export default class ChromeWebStorePrice extends BaseChromeWebStoreService {
static category = 'funding'
static route = { base: 'chrome-web-store/price', pattern: ':storeId' }

static examples = [
{
title: 'Chrome Web Store',
namedParams: { storeId: 'ogffaloegjglncjfehdfplabnoondfjo' },
staticPreview: this.render({ priceCurrency: 'USD', price: 0 }),
static openApi = {
'/chrome-web-store/price/{storeId}': {
get: {
summary: 'Chrome Web Store Price',
parameters: pathParams({
name: 'storeId',
example: 'ogffaloegjglncjfehdfplabnoondfjo',
}),
},
},
]
}

static defaultBadgeData = { label: 'price' }

Expand Down
18 changes: 11 additions & 7 deletions services/chrome-web-store/chrome-web-store-users.service.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
import { renderDownloadsBadge } from '../downloads.js'
import { redirector, NotFound } from '../index.js'
import { redirector, NotFound, pathParams } from '../index.js'
import BaseChromeWebStoreService from './chrome-web-store-base.js'

class ChromeWebStoreUsers extends BaseChromeWebStoreService {
static category = 'downloads'
static route = { base: 'chrome-web-store/users', pattern: ':storeId' }

static examples = [
{
title: 'Chrome Web Store',
namedParams: { storeId: 'ogffaloegjglncjfehdfplabnoondfjo' },
staticPreview: renderDownloadsBadge({ downloads: 573 }),
static openApi = {
'/chrome-web-store/users/{storeId}': {
get: {
summary: 'Chrome Web Store Users',
parameters: pathParams({
name: 'storeId',
example: 'ogffaloegjglncjfehdfplabnoondfjo',
}),
},
},
]
}

static defaultBadgeData = { label: 'users' }

Expand Down
18 changes: 11 additions & 7 deletions services/chrome-web-store/chrome-web-store-version.service.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
import { renderVersionBadge } from '../version.js'
import { NotFound } from '../index.js'
import { NotFound, pathParams } from '../index.js'
import BaseChromeWebStoreService from './chrome-web-store-base.js'

export default class ChromeWebStoreVersion extends BaseChromeWebStoreService {
static category = 'version'
static route = { base: 'chrome-web-store/v', pattern: ':storeId' }

static examples = [
{
title: 'Chrome Web Store',
namedParams: { storeId: 'ogffaloegjglncjfehdfplabnoondfjo' },
staticPreview: renderVersionBadge({ version: 'v1.1.0' }),
static openApi = {
'/chrome-web-store/v/{storeId}': {
get: {
summary: 'Chrome Web Store Version',
parameters: pathParams({
name: 'storeId',
example: 'ogffaloegjglncjfehdfplabnoondfjo',
}),
},
},
]
}

static defaultBadgeData = { label: 'chrome web store' }

Expand Down
40 changes: 28 additions & 12 deletions services/clearlydefined/clearlydefined-score.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
optionalNonNegativeInteger,
} from '../validators.js'
import { floorCount as floorCountColor } from '../color-formatters.js'
import { BaseJsonService, NotFound } from '../index.js'
import { BaseJsonService, NotFound, pathParams } from '../index.js'

const schema = Joi.object({
scores: Joi.object({
Expand All @@ -24,19 +24,35 @@ export default class ClearlyDefinedService extends BaseJsonService {
pattern: 'score/:type/:provider/:namespace/:name/:revision',
}

static examples = [
{
title: 'ClearlyDefined Score',
namedParams: {
type: 'npm',
provider: 'npmjs',
namespace: '-',
name: 'jquery',
revision: '3.4.1',
static openApi = {
'/clearlydefined/score/{type}/{provider}/{namespace}/{name}/{revision}': {
get: {
summary: 'ClearlyDefined Score',
parameters: pathParams(
{
name: 'type',
example: 'npm',
},
{
name: 'provider',
example: 'npmjs',
},
{
name: 'namespace',
example: '-',
},
{
name: 'name',
example: 'jquery',
},
{
name: 'revision',
example: '3.4.1',
},
),
},
staticPreview: this.render({ score: 88 }),
},
]
}

static defaultBadgeData = { label: 'score' }

Expand Down
16 changes: 11 additions & 5 deletions services/clojars/clojars-downloads.service.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
import { pathParams } from '../index.js'
import { renderDownloadsBadge } from '../downloads.js'
import { BaseClojarsService } from './clojars-base.js'

export default class ClojarsDownloads extends BaseClojarsService {
static category = 'downloads'
static route = { base: 'clojars/dt', pattern: ':clojar+' }

static examples = [
{
namedParams: { clojar: 'prismic' },
staticPreview: renderDownloadsBadge({ downloads: 117 }),
static openApi = {
'/clojars/dt/{clojar}': {
get: {
summary: 'Clojars Downloads',
parameters: pathParams({
name: 'clojar',
example: 'prismic',
}),
},
},
]
}

static defaultBadgeData = { label: 'downloads' }

Expand Down
18 changes: 11 additions & 7 deletions services/cocoapods/cocoapods-docs.service.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Joi from 'joi'
import { coveragePercentage as coveragePercentageColor } from '../color-formatters.js'
import { BaseJsonService } from '../index.js'
import { BaseJsonService, pathParams } from '../index.js'

const schema = Joi.object({
cocoadocs: Joi.object({
Expand All @@ -12,13 +12,17 @@ export default class CocoapodsDocs extends BaseJsonService {
static category = 'analysis'
static route = { base: 'cocoapods/metrics/doc-percent', pattern: ':spec' }

static examples = [
{
title: 'Cocoapods doc percentage',
namedParams: { spec: 'AFNetworking' },
staticPreview: this.render({ percentage: 94 }),
static openApi = {
'/cocoapods/metrics/doc-percent/{spec}': {
get: {
summary: 'Cocoapods doc percentage',
parameters: pathParams({
name: 'spec',
example: 'AFNetworking',
}),
},
},
]
}

static defaultBadgeData = { label: 'docs' }

Expand Down
17 changes: 11 additions & 6 deletions services/cocoapods/cocoapods-license.service.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
import { pathParams } from '../index.js'
import BaseCocoaPodsService from './cocoapods-base.js'

export default class CocoapodsLicense extends BaseCocoaPodsService {
static category = 'license'
static route = { base: 'cocoapods/l', pattern: ':spec' }

static examples = [
{
title: 'Cocoapods',
namedParams: { spec: 'AFNetworking' },
staticPreview: this.render({ license: 'MIT' }),
static openApi = {
'/cocoapods/l/{spec}': {
get: {
summary: 'Cocoapods License',
parameters: pathParams({
name: 'spec',
example: 'AFNetworking',
}),
},
},
]
}

static defaultBadgeData = { label: 'license' }

Expand Down
Loading
Loading