X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fextra-utils%2Fshared%2Fabstract-command.ts;h=1e07e946920ba34b1ac3c9a26b860c155fcdca9f;hb=6910f20f114b5bd020258a3a9a3f2117819a60c2;hp=dd4598a9137297240d7f6171a7891061b3272dd9;hpb=ae2abfd3aed3e75d39a316b49b914d187faa7475;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/extra-utils/shared/abstract-command.ts b/shared/extra-utils/shared/abstract-command.ts index dd4598a91..1e07e9469 100644 --- a/shared/extra-utils/shared/abstract-command.ts +++ b/shared/extra-utils/shared/abstract-command.ts @@ -1,5 +1,13 @@ import { HttpStatusCode } from '@shared/core-utils' -import { makeDeleteRequest, makeGetRequest, makePostBodyRequest, makePutBodyRequest, unwrapBody, unwrapText } from '../requests/requests' +import { + makeDeleteRequest, + makeGetRequest, + makePostBodyRequest, + makePutBodyRequest, + makeUploadRequest, + unwrapBody, + unwrapText +} from '../requests/requests' import { ServerInfo } from '../server/servers' export interface OverrideCommandOptions { @@ -7,12 +15,14 @@ export interface OverrideCommandOptions { expectedStatus?: number } -interface CommonCommandOptions extends OverrideCommandOptions { +interface InternalCommonCommandOptions extends OverrideCommandOptions { path: string + // If we automatically send the server token if the token is not provided + implicitToken: boolean defaultExpectedStatus: number } -interface GetCommandOptions extends CommonCommandOptions { +interface InternalGetCommandOptions extends InternalCommonCommandOptions { query?: { [ id: string ]: any } contentType?: string accept?: string @@ -37,15 +47,15 @@ abstract class AbstractCommand { this.expectedStatus = status } - protected getRequestBody (options: GetCommandOptions) { + protected getRequestBody (options: InternalGetCommandOptions) { return unwrapBody(this.getRequest(options)) } - protected getRequestText (options: GetCommandOptions) { + protected getRequestText (options: InternalGetCommandOptions) { return unwrapText(this.getRequest(options)) } - protected getRequest (options: GetCommandOptions) { + protected getRequest (options: InternalGetCommandOptions) { const { redirects, query, contentType, accept } = options return makeGetRequest({ @@ -58,11 +68,11 @@ abstract class AbstractCommand { }) } - protected deleteRequest (options: CommonCommandOptions) { + protected deleteRequest (options: InternalCommonCommandOptions) { return makeDeleteRequest(this.buildCommonRequestOptions(options)) } - protected putBodyRequest (options: CommonCommandOptions & { + protected putBodyRequest (options: InternalCommonCommandOptions & { fields?: { [ fieldName: string ]: any } }) { const { fields } = options @@ -74,7 +84,7 @@ abstract class AbstractCommand { }) } - protected postBodyRequest (options: CommonCommandOptions & { + protected postBodyRequest (options: InternalCommonCommandOptions & { fields?: { [ fieldName: string ]: any } }) { const { fields } = options @@ -86,15 +96,48 @@ abstract class AbstractCommand { }) } - private buildCommonRequestOptions (options: CommonCommandOptions) { + protected postUploadRequest (options: InternalCommonCommandOptions & { + fields?: { [ fieldName: string ]: any } + attaches?: any + }) { + const { fields, attaches } = options + + return makeUploadRequest({ + ...this.buildCommonRequestOptions(options), + + method: 'POST', + fields, + attaches + }) + } + + protected putUploadRequest (options: InternalCommonCommandOptions & { + fields?: { [ fieldName: string ]: any } + attaches?: any + }) { + const { fields, attaches } = options + + return makeUploadRequest({ + ...this.buildCommonRequestOptions(options), + + method: 'PUT', + fields, + attaches + }) + } + + private buildCommonRequestOptions (options: InternalCommonCommandOptions) { const { token, expectedStatus, defaultExpectedStatus, path } = options + const fallbackToken = options.implicitToken + ? this.server.accessToken + : undefined + return { url: this.server.url, path, - // Token can be null if we don't want to add it - token: token !== undefined ? token : this.server.accessToken, + token: token !== undefined ? token : fallbackToken, statusCodeExpected: expectedStatus ?? this.expectedStatus ?? defaultExpectedStatus }