@letsparky/api-v2-client
Version:
TypeScript client for the LetsParky API V2
74 lines (73 loc) • 2.56 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Tenants = void 0;
const validators_1 = require("./validators");
class Tenants {
constructor(client) {
this.client = client;
}
/**
* Get a paginated list of tenants (SYSTEM only)
* @param filters Optional filter parameters
* @returns Promise with paginated tenant list
*/
async list(filters) {
return this.client.get('/tenants', filters);
}
/**
* Get a paginated list of tenants with pagination controls (SYSTEM only)
* @param paginationParams Pagination parameters (page, limit, sort, order)
* @param filters Optional filter parameters
* @returns Promise with paginated tenants
*/
async listPaginated(paginationParams, filters) {
return this.client.getPaginated('/tenants', paginationParams, filters);
}
/**
* Get a specific tenant by ID
* @param tenantId The ID of the tenant to retrieve
* @returns Promise with tenant details
*/
async get(tenantId) {
validators_1.Validators.validateId(tenantId, 'Tenant');
return this.client.get(`/tenants/${tenantId}`);
}
/**
* Create a new tenant (SYSTEM only)
* @param params The tenant creation parameters
* @returns Promise with the created tenant
*/
async create(params) {
return this.client.post('/tenants', params);
}
/**
* Update an existing tenant
* @param tenantId The ID of the tenant to update
* @param params The tenant update parameters
* @returns Promise with the updated tenant
*/
async update(tenantId, params) {
validators_1.Validators.validateId(tenantId, 'Tenant');
return this.client.put(`/tenants/${tenantId}`, params);
}
/**
* Delete a tenant (SYSTEM only)
* @param tenantId The ID of the tenant to delete
* @returns Promise with the deletion result
*/
async delete(tenantId) {
validators_1.Validators.validateId(tenantId, 'Tenant');
return this.client.delete(`/tenants/${tenantId}`);
}
/**
* Assign a user to a tenant (SYSTEM only)
* @param tenantId The ID of the tenant to assign the user to
* @param params The user assignment parameters
* @returns Promise with the assignment result
*/
async assignUser(tenantId, params) {
validators_1.Validators.validateId(tenantId, 'Tenant');
return this.client.post(`/tenants/${tenantId}/users`, params);
}
}
exports.Tenants = Tenants;
;