UNPKG

@archon-inc/sdk

Version:

Integrate easily to our government platform using this SDK. More info on https://archon.inc/sdk

24 lines (21 loc) 871 B
import { Archon } from "../Archon.js"; import { Role } from "../types/policy.js"; import { Session, SessionId } from "../types/user.js"; /** * Changes the active role of an ongoing session. * * **Warning**: This only works for nonprivileged roles. Use `requestPrivilegedRoleSwitch` for privileged roles. * @param session The session to change the role of. * @param newRole The new role to switch to. * @returns The updated session. */ export default async function switchRole(session: Session | SessionId, newRole: Role): Promise<Session> { const request = await Archon.request('/users/roleSwitch', 'POST', { sessionId: typeof session === 'number' ? session : session.id, newRoleName: newRole.name }); if (request.status !== 200) { throw new Error(`Failed to switch role: ${request.data}`); } return request.data; }