import { BaseResource } from '@gitbeaker/requester-utils'; import { RequestHelper, endpoint } from '../infrastructure'; import type { BaseRequestOptions, GitlabAPIResponse, MappedOmit, OneOrNoneOf, PaginationRequestOptions, PaginationTypes, } from '../infrastructure'; import { SimpleUserSchema } from './Users'; export type AllEventOptions = { action?: | 'created' | 'updated' | 'closed' | 'reopened' | 'pushed' | 'commented' | 'merged' | 'joined' | 'left' | 'destroyed' | 'expired'; targetType?: 'issue' | 'milestone' | 'merge_request' | 'note' | 'project' | 'snippet' | 'user'; before?: string; after?: string; scope?: string; sort?: 'asc' | 'desc'; }; export interface EventSchema extends Record { id: number; title?: string; project_id: number; action_name: string; target_id: number; target_type: string; author_id: number; target_title: string; created_at: string; author: MappedOmit; author_username: string; } export class Events extends BaseResource { all( { projectId, userId, ...options }: OneOrNoneOf<{ projectId?: string | number; userId: string | number }> & AllEventOptions & PaginationRequestOptions

& BaseRequestOptions = {} as any, ): Promise> { let url: string; if (projectId) url = endpoint`projects/${projectId}/events`; else if (userId) url = endpoint`users/${userId}/events`; else url = 'events'; return RequestHelper.get()(this, url, options); } }