UNPKG

bunactyl

Version:

TypeScript SDK for Pterodactyl

85 lines (84 loc) 2.24 kB
import { BunactylClient } from '../client'; export class UsersResource { constructor(client) { this.client = client; } /** * List all users * * @param include Optional resources to include * @param filter Optional filters to apply * @param sort Optional sort parameter */ async list(include, filter, sort) { const params = {}; // Add include if specified if (include) { params['include'] = include; } // Add filters if specified if (filter) { Object.entries(filter).forEach(([key, value]) => { if (value) { params[`filter[${key}]`] = value; } }); } // Add sort if specified if (sort && sort.sort) { params['sort'] = sort.sort; } return await this.client.get('/users', { params }); } /** * Get details for a specific user by ID * * @param id User ID * @param include Optional resources to include */ async getById(id, include) { const params = {}; if (include) { params['include'] = include; } return await this.client.get(`/users/${id}`, { params }); } /** * Get details for a specific user by external ID * * @param externalId External user ID * @param include Optional resources to include */ async getByExternalId(externalId, include) { const params = {}; if (include) { params['include'] = include; } return await this.client.get(`/users/external/${externalId}`, { params }); } /** * Create a new user * * @param userData User data */ async create(userData) { return await this.client.post('/users', userData); } /** * Update an existing user * * @param id User ID * @param userData User data to update */ async update(id, userData) { return await this.client.patch(`/users/${id}`, userData); } /** * Delete a user * * @param id User ID */ async delete(id) { await this.client.delete(`/users/${id}`); } }