import {Extension, HttpMethod, IServiceCall, SessionRequirement} from "@chaosinsight/portalclient" import type {IEndpointResult, IPortalResponse} from "../index" export default class EZUser extends Extension { protected readonly extensionName = "EZUser" public getGet(): IServiceCall> { return this.call("Get", null, HttpMethod.Get, SessionRequirement.basic) } public setPost(email: string, name: string, permission: EZPermission | null = null, preferences: string | null = null, identifier?: string, password?: string): IServiceCall> { const data: any = {email, name, permission, preferences} if (identifier !== undefined) data.identifier = identifier return this.call("Set", {data, password}, HttpMethod.Post, SessionRequirement.authenticated) } public deleteGet(id: string): IServiceCall> { return this.call("Delete", {id}, HttpMethod.Get, SessionRequirement.authenticated) } public meGet(): IServiceCall> { return this.call("Me", null, HttpMethod.Get, SessionRequirement.basic) } } export interface IEZUser { Identifier: string Email: string Name: string Permission: EZPermission | null IsAdministrator: boolean Preferences: string } export enum EZPermission { administrator = "Administrator", contributor = "Contributor", user = "User" } Extension.add(EZUser, "ezUser") declare module "@chaosinsight/portalclient" { interface ExtensionHandler { ezUser: EZUser } }