import { AppStoreConnectClient } from '../services/index.js'; import { ListUsersResponse, UserFilters, UserSortOptions, UserIncludeOptions } from '../types/index.js'; import { sanitizeLimit, buildFilterParams } from '../utils/index.js'; export class UserHandlers { constructor(private client: AppStoreConnectClient) {} async listUsers(args: { limit?: number; sort?: UserSortOptions; filter?: UserFilters; include?: UserIncludeOptions[]; } = {}): Promise { const { limit = 100, sort, filter, include } = args; const params: Record = { limit: sanitizeLimit(limit) }; if (sort) { params.sort = sort; } Object.assign(params, buildFilterParams(filter)); if (Array.isArray(include) && include.length > 0) { params.include = include.join(','); } return this.client.get('/users', params); } }