unwrapBody,
unwrapText
} from '../requests/requests'
-import { ServerInfo } from '../server/servers'
+import { PeerTubeServer } from '../server/server'
export interface OverrideCommandOptions {
token?: string
// If we automatically send the server token if the token is not provided
implicitToken: boolean
defaultExpectedStatus: number
-}
-interface InternalGetCommandOptions extends InternalCommonCommandOptions {
- query?: { [ id: string ]: any }
+ // Common optional request parameters
contentType?: string
accept?: string
redirects?: number
range?: string
host?: string
+ headers?: { [ name: string ]: string }
+ requestType?: string
+ xForwardedFor?: string
+}
+
+interface InternalGetCommandOptions extends InternalCommonCommandOptions {
+ query?: { [ id: string ]: any }
+}
+
+interface InternalDeleteCommandOptions extends InternalCommonCommandOptions {
+ query?: { [ id: string ]: any }
+ rawQuery?: string
}
abstract class AbstractCommand {
constructor (
- protected server: ServerInfo
+ protected server: PeerTubeServer
) {
}
...options,
token: this.buildCommonRequestToken(options),
- defaultExpectedStatus: this.buildStatusCodeExpected(options),
+ defaultExpectedStatus: this.buildExpectedStatus(options),
url: `${protocol}//${host}`,
path: pathname,
}
protected getRequest (options: InternalGetCommandOptions) {
- const { redirects, query, contentType, accept, range, host } = options
+ const { query } = options
return makeGetRequest({
...this.buildCommonRequestOptions(options),
- redirects,
- query,
- contentType,
- range,
- host,
- accept
+ query
})
}
- protected deleteRequest (options: InternalCommonCommandOptions) {
- return makeDeleteRequest(this.buildCommonRequestOptions(options))
+ protected deleteRequest (options: InternalDeleteCommandOptions) {
+ const { query, rawQuery } = options
+
+ return makeDeleteRequest({
+ ...this.buildCommonRequestOptions(options),
+
+ query,
+ rawQuery
+ })
}
protected putBodyRequest (options: InternalCommonCommandOptions & {
protected postBodyRequest (options: InternalCommonCommandOptions & {
fields?: { [ fieldName: string ]: any }
- headers?: { [ name: string ]: string }
- type?: string
- xForwardedFor?: string
}) {
- const { type, fields, xForwardedFor, headers } = options
+ const { fields } = options
return makePostBodyRequest({
...this.buildCommonRequestOptions(options),
- fields,
- xForwardedFor,
- type,
- headers
+ fields
})
}
protected postUploadRequest (options: InternalCommonCommandOptions & {
fields?: { [ fieldName: string ]: any }
attaches?: { [ fieldName: string ]: any }
- headers?: { [ name: string ]: string }
}) {
- const { fields, attaches, headers } = options
+ const { fields, attaches } = options
return makeUploadRequest({
...this.buildCommonRequestOptions(options),
method: 'POST',
fields,
- attaches,
- headers
+ attaches
})
}
protected putUploadRequest (options: InternalCommonCommandOptions & {
fields?: { [ fieldName: string ]: any }
attaches?: { [ fieldName: string ]: any }
- headers?: { [ name: string ]: string }
}) {
- const { fields, attaches, headers } = options
+ const { fields, attaches } = options
return makeUploadRequest({
...this.buildCommonRequestOptions(options),
method: 'PUT',
- headers,
fields,
attaches
})
fixture: string
fieldname: string
}) {
- let filePath = ''
- if (isAbsolute(options.fixture)) {
- filePath = options.fixture
- } else {
- filePath = join(root(), 'server', 'tests', 'fixtures', options.fixture)
- }
+ const filePath = isAbsolute(options.fixture)
+ ? options.fixture
+ : join(root(), 'server', 'tests', 'fixtures', options.fixture)
return this.postUploadRequest({
...options,
}
protected buildCommonRequestOptions (options: InternalCommonCommandOptions) {
- const { url, path } = options
+ const { url, path, redirects, contentType, accept, range, host, headers, requestType, xForwardedFor } = options
return {
url: url ?? this.server.url,
path,
token: this.buildCommonRequestToken(options),
- statusCodeExpected: this.buildStatusCodeExpected(options)
+ expectedStatus: this.buildExpectedStatus(options),
+
+ redirects,
+ contentType,
+ range,
+ host,
+ accept,
+ headers,
+ type: requestType,
+ xForwardedFor
}
}
return token !== undefined ? token : fallbackToken
}
- protected buildStatusCodeExpected (options: Pick<InternalCommonCommandOptions, 'expectedStatus' | 'defaultExpectedStatus'>) {
+ protected buildExpectedStatus (options: Pick<InternalCommonCommandOptions, 'expectedStatus' | 'defaultExpectedStatus'>) {
const { expectedStatus, defaultExpectedStatus } = options
return expectedStatus !== undefined ? expectedStatus : defaultExpectedStatus