Files
shields/services/legacy-service.js
2018-12-03 18:05:34 -05:00

30 lines
999 B
JavaScript

'use strict'
const BaseService = require('./base')
// This adapter allows running legacy badges in the new file layout and
// service architecture.
//
// There are some tips for rewriting legacy services:
// https://github.com/badges/shields/blob/master/doc/rewriting-services.md
//
// Do not use this for new services. New services should derive from e.g.
// BaseJsonService. Refer to the tutorial:
// https://github.com/badges/shields/blob/master/doc/TUTORIAL.md
class LegacyService extends BaseService {
static registerLegacyRouteHandler({ camp, cache, githubApiProvider }) {
throw Error(`registerLegacyRouteHandler() not implemented for ${this.name}`)
}
static register({ camp, handleRequest, githubApiProvider }, serviceConfig) {
const { cacheHeaders: cacheHeaderConfig } = serviceConfig
this.registerLegacyRouteHandler({
camp,
cache: (...args) => handleRequest(cacheHeaderConfig, ...args),
githubApiProvider,
})
}
}
module.exports = LegacyService