Add missing function definitions for Markdown Uploads (#3742)

This commit is contained in:
Cody Hutchins 2025-08-06 18:05:36 -06:00 committed by GitHub
parent 2689a99773
commit d3b6dfa575
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 86 additions and 2 deletions

View File

@ -20,11 +20,25 @@ export interface GroupMarkdownUploads<C extends boolean = false>
options?: Sudo,
): Promise<GitlabAPIResponse<Blob, C, E, void>>;
download<E extends boolean = false>(
projectId: string | number,
secret: string,
filename: string,
options?: Sudo,
): Promise<GitlabAPIResponse<Blob, C, E, void>>;
remove<E extends boolean = false>(
groupId: string | number,
uploadId: string | number,
options?: Sudo,
): Promise<GitlabAPIResponse<void, C, E, void>>;
remove<E extends boolean = false>(
projectId: string | number,
secret: string,
filename: string,
options?: Sudo,
): Promise<GitlabAPIResponse<void, C, E, void>>;
}
export class GroupMarkdownUploads<C extends boolean = false> extends ResourceMarkdownUploads<C> {

View File

@ -32,11 +32,25 @@ export interface ProjectMarkdownUploads<C extends boolean = false>
options?: Sudo,
): Promise<GitlabAPIResponse<Blob, C, E, void>>;
download<E extends boolean = false>(
projectId: string | number,
secret: string,
filename: string,
options?: Sudo,
): Promise<GitlabAPIResponse<Blob, C, E, void>>;
remove<E extends boolean = false>(
projectId: string | number,
uploadId: string | number,
options?: Sudo,
): Promise<GitlabAPIResponse<void, C, E, void>>;
remove<E extends boolean = false>(
projectId: string | number,
secret: string,
filename: string,
options?: Sudo,
): Promise<GitlabAPIResponse<void, C, E, void>>;
}
export class ProjectMarkdownUploads<C extends boolean = false> extends ResourceMarkdownUploads<C> {

View File

@ -50,15 +50,61 @@ export class ResourceMarkdownUploads<C extends boolean> extends BaseResource<C>
resourceId: string | number,
uploadId: string | number,
options?: Sudo,
): Promise<GitlabAPIResponse<Blob, C, E, void>>;
download<E extends boolean = false>(
resourceId: string | number,
secret: string,
filename: string,
options?: Sudo,
): Promise<GitlabAPIResponse<Blob, C, E, void>>;
download<E extends boolean = false>(
resourceId: string | number,
uploadIdOrSecret: string | number,
filename?: any,
options?: Sudo,
): Promise<GitlabAPIResponse<Blob, C, E, void>> {
return RequestHelper.get<Blob>()(this, endpoint`${resourceId}/uploads/${uploadId}`, options);
if (filename && typeof filename === 'string') {
return RequestHelper.get<Blob>()(
this,
endpoint`${resourceId}/uploads/${uploadIdOrSecret}/${filename}`,
options,
);
}
return RequestHelper.get<Blob>()(
this,
endpoint`${resourceId}/uploads/${uploadIdOrSecret}`,
options,
);
}
remove<E extends boolean = false>(
resourceId: string | number,
uploadId: string | number,
options?: Sudo,
): Promise<GitlabAPIResponse<void, C, E, void>>;
remove<E extends boolean = false>(
resourceId: string | number,
secret: string,
filename: string,
options?: Sudo,
): Promise<GitlabAPIResponse<void, C, E, void>>;
remove<E extends boolean = false>(
resourceId: string | number,
uploadIdOrSecret: string | number,
filename?: any,
options?: Sudo,
): Promise<GitlabAPIResponse<void, C, E, void>> {
return RequestHelper.del()(this, endpoint`${resourceId}/uploads/${uploadId}`, options);
if (filename && typeof filename === 'string') {
return RequestHelper.del()(
this,
endpoint`${resourceId}/uploads/${uploadIdOrSecret}/${filename}`,
options,
);
}
return RequestHelper.del()(this, endpoint`${resourceId}/uploads/${uploadIdOrSecret}`, options);
}
}

View File

@ -33,6 +33,11 @@ describe('ResourceMarkdownUploads.download', () => {
expect(RequestHelper.get()).toHaveBeenCalledWith(service, '5/uploads/6', undefined);
});
it('should call the correct url with a resource id and a secret and a filename', async () => {
await service.download(5, '6', '7.txt');
expect(RequestHelper.get()).toHaveBeenCalledWith(service, '5/uploads/6/7.txt', undefined);
});
});
describe('ResourceMarkdownUploads.all', () => {
@ -49,4 +54,9 @@ describe('ResourceMarkdownUploads.remove', () => {
expect(RequestHelper.del()).toHaveBeenCalledWith(service, '5/uploads/6', undefined);
});
it('should call the correct url with a resource id and a secret and a filename', async () => {
await service.remove('5', '6', '7.txt');
expect(RequestHelper.del()).toHaveBeenCalledWith(service, '5/uploads/6/7.txt', undefined);
});
});