All files / src userGroup.ts

100% Statements 11/11
100% Branches 2/2
100% Functions 4/4
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 421x                 1x       52x 52x                 4x 4x   2x 1x   1x         1x       1x      
import Client, { UserGroupDeletionFailedError, UserGroupDoesNotExistError } from "./client";
 
/**
 * The user group class represents a user user in nextcloud.
 * spec: https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/instruction_set_for_groups.html
 * id
 * getSubAdmins
 * getMembers
 */
export default class UserGroup {
    readonly id: string;
    private client: Client;
    constructor(client: Client, id: string) {
        this.id = id;
        this.client = client;
    }
 
    /**
     * deletes the user group
     * @throws UserGroupDeletionFailedError
     */
    public async delete(): Promise<void> {
 
        try {
            return await this.client.deleteUserGroup(this.id);
        } catch (e) {
            if (e instanceof UserGroupDoesNotExistError) {
                return;
            }
            throw e;
        }
    }
 
    public async getMemberUserIds(): Promise<string[]> {
        return await this.client.getUserGroupMembers(this.id);
    }
 
    public async getSubadminUserIds(): Promise<string[]> {
        return await this.client.getUserGroupSubadmins(this.id);
    }
}