mirror of
https://github.com/jdalrymple/gitbeaker.git
synced 2026-01-25 16:04:01 +00:00
Saving progress
This commit is contained in:
parent
d8b7d1a072
commit
e4bb95cdb3
@ -27,6 +27,11 @@ export interface AsAdmin<A extends boolean = false> {
|
||||
}
|
||||
|
||||
export type BaseRequestOptions<E extends boolean = false> = Sudo &
|
||||
ShowExpanded<E> & {
|
||||
[key: string]: RequesterBodyType
|
||||
};
|
||||
|
||||
export type RequesterBaseRequestOptions<E extends boolean = false> = Sudo &
|
||||
ShowExpanded<E> & {
|
||||
body?: RequesterBodyType;
|
||||
searchParams?: Record<string, string>;
|
||||
@ -34,7 +39,7 @@ export type BaseRequestOptions<E extends boolean = false> = Sudo &
|
||||
|
||||
export type PaginationTypes = 'keyset' | 'offset';
|
||||
|
||||
export interface KeysetPaginationRequestSearchParams {
|
||||
export interface KeysetPaginationRequestParams {
|
||||
pagination: 'keyset';
|
||||
perPage?: number | string;
|
||||
orderBy: string;
|
||||
@ -44,7 +49,7 @@ export interface KeysetPaginationRequestSearchParams {
|
||||
cursor?: string;
|
||||
}
|
||||
|
||||
export interface OffsetPaginationRequestSearchParams {
|
||||
export interface OffsetPaginationRequestParams {
|
||||
page?: number | string;
|
||||
perPage?: number | string;
|
||||
}
|
||||
@ -54,10 +59,15 @@ export interface BasePaginationRequestOptions {
|
||||
}
|
||||
|
||||
export type PaginationRequestSearchParams<P extends PaginationTypes | void> = P extends 'keyset'
|
||||
? KeysetPaginationRequestSearchParams
|
||||
: OffsetPaginationRequestSearchParams;
|
||||
? KeysetPaginationRequestParams
|
||||
: P extends 'offset'
|
||||
? OffsetPaginationRequestParams
|
||||
: OffsetPaginationRequestParams;
|
||||
|
||||
export type PaginationRequestOptions<P extends PaginationTypes | void = void> =
|
||||
BasePaginationRequestOptions & PaginationRequestSearchParams<P>;
|
||||
|
||||
export type RequesterPaginationRequestOptions<P extends PaginationTypes | void = void> =
|
||||
BasePaginationRequestOptions & {
|
||||
searchParams?: PaginationRequestSearchParams<P>;
|
||||
};
|
||||
@ -65,7 +75,7 @@ export type PaginationRequestOptions<P extends PaginationTypes | void = void> =
|
||||
// Response Formats
|
||||
export type CamelizedResponse<T, C> = C extends true ? Camelize<T> : T;
|
||||
|
||||
export interface OffsetPagination {
|
||||
export interface OffsetPaginationResponseParams {
|
||||
total: number;
|
||||
next: number | null;
|
||||
current: number;
|
||||
@ -74,8 +84,9 @@ export interface OffsetPagination {
|
||||
totalPages: number;
|
||||
}
|
||||
|
||||
export interface KeysetPagination {
|
||||
idAfter: number;
|
||||
export interface KeysetPaginationResponseParams {
|
||||
idAfter?: number;
|
||||
cursor?: string;
|
||||
perPage: number;
|
||||
orderBy: string;
|
||||
sort: 'asc' | 'desc';
|
||||
@ -89,7 +100,7 @@ export interface ExpandedResponse<T> {
|
||||
|
||||
export type PaginatedResponse<T, P extends PaginationTypes = PaginationTypes> = {
|
||||
[U in P]: {
|
||||
paginationInfo: P extends 'keyset' ? KeysetPagination : OffsetPagination;
|
||||
paginationInfo: P extends 'keyset' ? KeysetPaginationResponseParams : OffsetPaginationResponseParams;
|
||||
data: T;
|
||||
};
|
||||
}[P];
|
||||
@ -183,7 +194,7 @@ async function getManyMore<
|
||||
getFn: (ep: string, op: DefaultRequesterOptions) => Promise<FormattedResponse<T>>,
|
||||
endpoint: string,
|
||||
response: FormattedResponse<T>,
|
||||
requestOptions: PaginationRequestOptions<P> & BaseRequestOptions<E>,
|
||||
requestOptions: RequesterPaginationRequestOptions<P> & RequesterBaseRequestOptions<E>,
|
||||
acc?: T,
|
||||
): Promise<PaginatedResponse<T, P> | T> {
|
||||
const { sudo, showExpanded, maxPages, searchParams } = requestOptions;
|
||||
@ -296,7 +307,7 @@ export function get<
|
||||
return async <C extends boolean, E extends boolean, P extends 'keyset' | 'offset' | void>(
|
||||
service: BaseResource<C>,
|
||||
endpoint: string,
|
||||
options?: PaginationRequestOptions<P> & BaseRequestOptions<E> & AsStream,
|
||||
options?: RequesterPaginationRequestOptions<P> & RequesterBaseRequestOptions<E> & AsStream,
|
||||
): Promise<any> => {
|
||||
const { asStream, sudo, showExpanded, searchParams } = options || {};
|
||||
const signal = service.queryTimeout ? AbortSignal.timeout(service.queryTimeout) : undefined;
|
||||
@ -334,7 +345,7 @@ export function post<T extends ResponseBodyTypes>() {
|
||||
return async <C extends boolean = false, E extends boolean = false>(
|
||||
service: BaseResource<C>,
|
||||
endpoint: string,
|
||||
options?: BaseRequestOptions<E>,
|
||||
options?: RequesterBaseRequestOptions<E>,
|
||||
): Promise<GitlabAPIResponse<T, C, E, void>> => {
|
||||
const { body, searchParams, sudo, showExpanded } = options || {};
|
||||
|
||||
@ -356,7 +367,7 @@ export function put<T extends ResponseBodyTypes>() {
|
||||
return async <C extends boolean = false, E extends boolean = false>(
|
||||
service: BaseResource<C>,
|
||||
endpoint: string,
|
||||
options?: BaseRequestOptions<E>,
|
||||
options?: RequesterBaseRequestOptions<E>,
|
||||
): Promise<GitlabAPIResponse<T, C, E, void>> => {
|
||||
const { body, searchParams, sudo, showExpanded } = options || {};
|
||||
|
||||
@ -378,7 +389,7 @@ export function patch<T extends ResponseBodyTypes>() {
|
||||
return async <C extends boolean = false, E extends boolean = false>(
|
||||
service: BaseResource<C>,
|
||||
endpoint: string,
|
||||
options?: BaseRequestOptions<E>,
|
||||
options?: RequesterBaseRequestOptions<E>,
|
||||
): Promise<GitlabAPIResponse<T, C, E, void>> => {
|
||||
const { body, searchParams, sudo, showExpanded } = options || {};
|
||||
|
||||
@ -400,7 +411,7 @@ export function del<T extends ResponseBodyTypes = void>() {
|
||||
return async <C extends boolean = false, E extends boolean = false>(
|
||||
service: BaseResource<C>,
|
||||
endpoint: string,
|
||||
options?: BaseRequestOptions<E>,
|
||||
options?: RequesterBaseRequestOptions<E>,
|
||||
): Promise<GitlabAPIResponse<T, C, E, void>> => {
|
||||
const { body, searchParams, sudo, showExpanded } = options || {};
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { BaseResource } from '@gitbeaker/requester-utils';
|
||||
import { RequestHelper, endpoint } from '../infrastructure';
|
||||
import { RequestHelper, createFormData, endpoint } from '../infrastructure';
|
||||
import type {
|
||||
GitlabAPIResponse,
|
||||
PaginationRequestOptions,
|
||||
@ -23,10 +23,18 @@ export class AlertManagement<C extends boolean = false> extends BaseResource<C>
|
||||
alertIId: number,
|
||||
options?: PaginationRequestOptions<P> & Sudo & ShowExpanded<E>,
|
||||
): Promise<GitlabAPIResponse<MetricImageSchema[], C, E, P>> {
|
||||
const { sudo, showExpanded, maxPages, ...qp } = options || {};
|
||||
const requestOptions = options ? {
|
||||
sudo: sudo,
|
||||
showExpanded: showExpanded,
|
||||
maxPages: maxPages,
|
||||
searchParams: qp,
|
||||
} : undefined;
|
||||
|
||||
return RequestHelper.get<MetricImageSchema[]>()(
|
||||
this,
|
||||
endpoint`projects/${projectId}/alert_management_alerts/${alertIId}/metric_images`,
|
||||
options,
|
||||
requestOptions,
|
||||
);
|
||||
}
|
||||
|
||||
@ -39,7 +47,14 @@ export class AlertManagement<C extends boolean = false> extends BaseResource<C>
|
||||
return RequestHelper.put<MetricImageSchema>()(
|
||||
this,
|
||||
endpoint`projects/${projectId}/alert_management_alerts/${alertIId}/metric_images/${imageId}`,
|
||||
options,
|
||||
{
|
||||
sudo: options?.sudo,
|
||||
showExpanded: options?.showExpanded,
|
||||
body: {
|
||||
url: options?.url,
|
||||
urlText: options?.urlText,
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@ -66,9 +81,12 @@ export class AlertManagement<C extends boolean = false> extends BaseResource<C>
|
||||
this,
|
||||
endpoint`projects/${projectId}/alert_management_alerts/${alertIId}/metric_images`,
|
||||
{
|
||||
isForm: true,
|
||||
file: [metricImage.content, metricImage.filename],
|
||||
...options,
|
||||
body: createFormData({
|
||||
file: [metricImage.content, metricImage.filename],
|
||||
url: options?.url,
|
||||
urlText: options?.urlText,
|
||||
}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@ -37,7 +37,10 @@ describe('Agents.editMetricImage', () => {
|
||||
service,
|
||||
'projects/1/alert_management_alerts/2/metric_images/3',
|
||||
{
|
||||
url: 'url',
|
||||
body: {
|
||||
url: 'url',
|
||||
urlText: undefined,
|
||||
},
|
||||
},
|
||||
);
|
||||
});
|
||||
@ -66,8 +69,7 @@ describe('Agents.uploadMetricImage', () => {
|
||||
service,
|
||||
'projects/1/alert_management_alerts/2/metric_images',
|
||||
{
|
||||
isForm: true,
|
||||
file: [image.content, image.filename],
|
||||
body: expect.any(FormData),
|
||||
urlText: 'text',
|
||||
},
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user