From 2fa69ba359c53c4163dddefd5b72df0673a52d3e Mon Sep 17 00:00:00 2001 From: Thakur Karthik Date: Sat, 3 Oct 2020 20:40:16 +0530 Subject: [PATCH] Refactor readthedocs reddit redmine repology services (#5641) Co-authored-by: Caleb Cartwright --- services/readthedocs/readthedocs.service.js | 54 ++++++++---------- .../reddit/subreddit-subscribers.service.js | 46 +++++++-------- services/reddit/user-karma.service.js | 46 +++++++-------- services/redmine/redmine.service.js | 56 ++++++++----------- .../repology/repology-repositories.service.js | 38 +++++-------- 5 files changed, 98 insertions(+), 142 deletions(-) diff --git a/services/readthedocs/readthedocs.service.js b/services/readthedocs/readthedocs.service.js index a9537f108f..3b3b15a8a4 100644 --- a/services/readthedocs/readthedocs.service.js +++ b/services/readthedocs/readthedocs.service.js @@ -13,40 +13,32 @@ const schema = Joi.object({ }).required() module.exports = class ReadTheDocs extends BaseSvgScrapingService { - static get category() { - return 'build' + static category = 'build' + + static route = { + base: 'readthedocs', + pattern: ':project/:version?', } - static get route() { - return { - base: 'readthedocs', - pattern: ':project/:version?', - } - } + static examples = [ + { + title: 'Read the Docs', + pattern: ':packageName', + namedParams: { packageName: 'pip' }, + staticPreview: this.render({ status: 'passing' }), + keywords, + }, + { + title: 'Read the Docs (version)', + pattern: ':packageName/:version', + namedParams: { packageName: 'pip', version: 'stable' }, + staticPreview: this.render({ status: 'passing' }), + keywords, + }, + ] - static get examples() { - return [ - { - title: 'Read the Docs', - pattern: ':packageName', - namedParams: { packageName: 'pip' }, - staticPreview: this.render({ status: 'passing' }), - keywords, - }, - { - title: 'Read the Docs (version)', - pattern: ':packageName/:version', - namedParams: { packageName: 'pip', version: 'stable' }, - staticPreview: this.render({ status: 'passing' }), - keywords, - }, - ] - } - - static get defaultBadgeData() { - return { - label: 'docs', - } + static defaultBadgeData = { + label: 'docs', } static render({ status }) { diff --git a/services/reddit/subreddit-subscribers.service.js b/services/reddit/subreddit-subscribers.service.js index 1576feaa84..992d866809 100644 --- a/services/reddit/subreddit-subscribers.service.js +++ b/services/reddit/subreddit-subscribers.service.js @@ -12,37 +12,29 @@ const schema = Joi.object({ }).required() module.exports = class RedditSubredditSubscribers extends BaseJsonService { - static get category() { - return 'social' + static category = 'social' + + static route = { + base: 'reddit/subreddit-subscribers', + pattern: ':subreddit', } - static get route() { - return { - base: 'reddit/subreddit-subscribers', - pattern: ':subreddit', - } - } - - static get examples() { - return [ - { - title: 'Subreddit subscribers', - namedParams: { subreddit: 'drums' }, - staticPreview: { - label: 'follow r/drums', - message: '77k', - color: 'red', - style: 'social', - }, + static examples = [ + { + title: 'Subreddit subscribers', + namedParams: { subreddit: 'drums' }, + staticPreview: { + label: 'follow r/drums', + message: '77k', + color: 'red', + style: 'social', }, - ] - } + }, + ] - static get defaultBadgeData() { - return { - label: 'reddit', - namedLogo: 'reddit', - } + static defaultBadgeData = { + label: 'reddit', + namedLogo: 'reddit', } static render({ subreddit, subscribers }) { diff --git a/services/reddit/user-karma.service.js b/services/reddit/user-karma.service.js index 4537473e25..35483bb409 100644 --- a/services/reddit/user-karma.service.js +++ b/services/reddit/user-karma.service.js @@ -13,37 +13,29 @@ const schema = Joi.object({ }).required() module.exports = class RedditUserKarma extends BaseJsonService { - static get category() { - return 'social' + static category = 'social' + + static route = { + base: 'reddit/user-karma', + pattern: ':variant(link|comment|combined)/:user', } - static get route() { - return { - base: 'reddit/user-karma', - pattern: ':variant(link|comment|combined)/:user', - } - } - - static get examples() { - return [ - { - title: 'Reddit User Karma', - namedParams: { variant: 'combined', user: 'example' }, - staticPreview: { - label: 'combined karma', - message: 56, - color: 'red', - style: 'social', - }, + static examples = [ + { + title: 'Reddit User Karma', + namedParams: { variant: 'combined', user: 'example' }, + staticPreview: { + label: 'combined karma', + message: 56, + color: 'red', + style: 'social', }, - ] - } + }, + ] - static get defaultBadgeData() { - return { - label: 'reddit karma', - namedLogo: 'reddit', - } + static defaultBadgeData = { + label: 'reddit karma', + namedLogo: 'reddit', } static render({ variant, karma, user }) { diff --git a/services/redmine/redmine.service.js b/services/redmine/redmine.service.js index 5d78d07b7d..4de51ca74a 100644 --- a/services/redmine/redmine.service.js +++ b/services/redmine/redmine.service.js @@ -12,9 +12,7 @@ const schema = Joi.object({ }) class BaseRedminePluginRating extends BaseXmlService { - static get category() { - return 'rating' - } + static category = 'rating' static render({ rating }) { throw new Error(`render() function not implemented for ${this.name}`) @@ -33,26 +31,20 @@ class BaseRedminePluginRating extends BaseXmlService { } class RedminePluginRating extends BaseRedminePluginRating { - static get route() { - return { - base: 'redmine/plugin/rating', - pattern: ':plugin', - } + static route = { + base: 'redmine/plugin/rating', + pattern: ':plugin', } - static get examples() { - return [ - { - title: 'Plugin on redmine.org', - namedParams: { plugin: 'redmine_xlsx_format_issue_exporter' }, - staticPreview: this.render({ rating: 5 }), - }, - ] - } + static examples = [ + { + title: 'Plugin on redmine.org', + namedParams: { plugin: 'redmine_xlsx_format_issue_exporter' }, + staticPreview: this.render({ rating: 5 }), + }, + ] - static get defaultBadgeData() { - return { label: 'redmine' } - } + static defaultBadgeData = { label: 'redmine' } static render({ rating }) { return { @@ -64,22 +56,18 @@ class RedminePluginRating extends BaseRedminePluginRating { } class RedminePluginStars extends BaseRedminePluginRating { - static get route() { - return { - base: 'redmine/plugin/stars', - pattern: ':plugin', - } + static route = { + base: 'redmine/plugin/stars', + pattern: ':plugin', } - static get examples() { - return [ - { - title: 'Plugin on redmine.org', - namedParams: { plugin: 'redmine_xlsx_format_issue_exporter' }, - staticPreview: this.render({ rating: 5 }), - }, - ] - } + static examples = [ + { + title: 'Plugin on redmine.org', + namedParams: { plugin: 'redmine_xlsx_format_issue_exporter' }, + staticPreview: this.render({ rating: 5 }), + }, + ] static render({ rating }) { return { diff --git a/services/repology/repology-repositories.service.js b/services/repology/repology-repositories.service.js index 4f33a87fc0..7d179bc3f4 100644 --- a/services/repology/repology-repositories.service.js +++ b/services/repology/repology-repositories.service.js @@ -10,32 +10,24 @@ const schema = Joi.object({ }).required() module.exports = class RepologyRepositories extends BaseSvgScrapingService { - static get category() { - return 'platform-support' + static category = 'platform-support' + + static route = { + base: 'repology/repositories', + pattern: ':projectName', } - static get route() { - return { - base: 'repology/repositories', - pattern: ':projectName', - } - } + static examples = [ + { + title: 'Repology - Repositories', + namedParams: { projectName: 'starship' }, + staticPreview: this.render({ repositoryCount: '18' }), + }, + ] - static get examples() { - return [ - { - title: 'Repology - Repositories', - namedParams: { projectName: 'starship' }, - staticPreview: this.render({ repositoryCount: '18' }), - }, - ] - } - - static get defaultBadgeData() { - return { - label: 'repositories', - color: 'blue', - } + static defaultBadgeData = { + label: 'repositories', + color: 'blue', } static render({ repositoryCount }) {