@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
text/typescript
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;
}