//helper functions to parse room IDs

export const isRoomAnonymous = (roomID: string): boolean => {
    if (roomID.startsWith('_/')) {
        return true;
    } else if(roomID.startsWith('@/')) {
        return false;
    } else {
        throw new Error('Incorrect room ID: '+roomID);
    }
}

export const extractRoomSlugPublicRoomId = (roomId: string): string => {
    const idParts = roomId.split('/');
    if (idParts.length < 3) throw new Error('Incorrect roomId: '+roomId);
    return idParts.slice(2).join('/');
}
export interface extractDataFromPrivateRoomIdResponse {
    organizationSlug: string;
    worldSlug: string;
    roomSlug: string;
}
export const extractDataFromPrivateRoomId = (roomId: string): extractDataFromPrivateRoomIdResponse => {
    const idParts = roomId.split('/');
    if (idParts.length < 4) throw new Error('Incorrect roomId: '+roomId);
    const organizationSlug = idParts[1];
    const worldSlug = idParts[2];
    const roomSlug = idParts[3];
    return {organizationSlug, worldSlug, roomSlug}
}