Refactor route functions in BaseService (#2860)

The route helper functions are fairly well isolated from the rest of BaseService, with a few convenient entry points. They are easier to test in isolation.

The way the code was written before, `pathToRegexp` was invoked once for every request, which seems inefficient.

`route` was validated when it was used, though it seems more helpful to validate it up front.

This breaks out `_makeFullUrl`, `_regex`, `_regexFromPath` into new helper functions `makeFullUrl`, `assertValidRoute`, `prepareRoute`, and `namedParamsForMatch`.

It adds validation to route, and updates the services without patterns to include one, in order to pass the new validation rules.
This commit is contained in:
Paul Melnikow
2019-01-26 02:38:12 -05:00
committed by GitHub
parent bf5438f457
commit 47e8cc3de3
55 changed files with 283 additions and 214 deletions

View File

@@ -23,6 +23,7 @@ module.exports = class GithubCommitActivity extends LegacyService {
static get route() {
return {
base: 'github/commit-activity',
pattern: ':interval(y|4w|w)/:user/:repo',
}
}