]>
Commit | Line | Data |
---|---|---|
20bafcb6 | 1 | import { HttpStatusCode } from '../../../shared/models/http/http-error-codes' |
20bafcb6 C |
2 | import { ApiCache, APICacheOptions } from './shared' |
3 | ||
20bafcb6 C |
4 | const defaultOptions: APICacheOptions = { |
5 | excludeStatus: [ | |
6 | HttpStatusCode.FORBIDDEN_403, | |
7 | HttpStatusCode.NOT_FOUND_404 | |
8 | ] | |
9 | } | |
10 | ||
11 | function cacheRoute (duration: string) { | |
12 | const instance = new ApiCache(defaultOptions) | |
13 | ||
14 | return instance.buildMiddleware(duration) | |
15 | } | |
16 | ||
17 | function cacheRouteFactory (options: APICacheOptions) { | |
18 | const instance = new ApiCache({ ...defaultOptions, ...options }) | |
19 | ||
cb0eda56 AG |
20 | return { instance, middleware: instance.buildMiddleware.bind(instance) } |
21 | } | |
22 | ||
23 | // --------------------------------------------------------------------------- | |
24 | ||
25 | function buildPodcastGroupsCache (options: { | |
26 | channelId: number | |
27 | }) { | |
28 | return 'podcast-feed-' + options.channelId | |
20bafcb6 C |
29 | } |
30 | ||
31 | // --------------------------------------------------------------------------- | |
32 | ||
33 | export { | |
34 | cacheRoute, | |
cb0eda56 AG |
35 | cacheRouteFactory, |
36 | ||
37 | buildPodcastGroupsCache | |
20bafcb6 | 38 | } |