import { gracely } from "gracely" import { http } from "cloudly-http" import { User } from "../../User" import { Invites } from "./Invites" export class Users { #invites?: Invites get invites(): Invites { return (this.#invites ??= new Invites(this.client)) } constructor(private readonly client: http.Client) {} async create(user: User.Creatable): Promise { return await this.client.post("/user", user) } async fetch(email: string): Promise { return await this.client.get(`/user/${email}`) } async list(): Promise { return await this.client.get("/user") } async remove(email: string): Promise { return await this.client.delete(`/user/${email}`) } async updateAccess(email: string, access: User.Access): Promise { return await this.client.put(`/user/${email}/access`, access) } async removeMfa(email: string) { return this.client.delete(`/user/${email}/mfa/totp`) } }