import { Archon } from "../Archon.js";
import { Role } from "../types/policy.js";
import { User, UserId } from "../types/user.js";

/**
 * Retrieves a user's default role.
 * @param user The user to get the default role for.
 * @returns A promise resolving to the user's default role.
 */
export default async function getDefaultRole(user: User | UserId): Promise<Role> {
    const userId = typeof user === "string" ? user : user.id;
    const response = await Archon.request(`/policy/defaultRole/${userId}`, "GET");

    if (response.status !== 200) {
        throw new Error(`Failed to retrieve default role for user ${user}.`);
    }

    return response.data;
}