12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { buildUUID } from '@shared/extra-utils'
- import { HttpStatusCode } from '@shared/models'
- import { AbstractCommand, OverrideCommandOptions } from '../shared'
- type FeedType = 'videos' | 'video-comments' | 'subscriptions'
- export class FeedCommand extends AbstractCommand {
- getXML (options: OverrideCommandOptions & {
- feed: FeedType
- ignoreCache: boolean
- format?: string
- }) {
- const { feed, format, ignoreCache } = options
- const path = '/feeds/' + feed + '.xml'
- const query: { [id: string]: string } = {}
- if (ignoreCache) query.v = buildUUID()
- if (format) query.format = format
- return this.getRequestText({
- ...options,
- path,
- query,
- accept: 'application/xml',
- implicitToken: false,
- defaultExpectedStatus: HttpStatusCode.OK_200
- })
- }
- getJSON (options: OverrideCommandOptions & {
- feed: FeedType
- ignoreCache: boolean
- query?: { [ id: string ]: any }
- }) {
- const { feed, query = {}, ignoreCache } = options
- const path = '/feeds/' + feed + '.json'
- const cacheQuery = ignoreCache
- ? { v: buildUUID() }
- : {}
- return this.getRequestText({
- ...options,
- path,
- query: { ...query, ...cacheQuery },
- accept: 'application/json',
- implicitToken: false,
- defaultExpectedStatus: HttpStatusCode.OK_200
- })
- }
- }
|