Skip to main content

WorkspacesClient

Client for /api/v1/workspaces/. Workspace IDs are integers. The backend currently rejects any color other than 1 on add/update.

Extends

  • BaseClient

Constructors

Constructor

new WorkspacesClient(config: ClientConfig): WorkspacesClient;

Parameters

ParameterType
configClientConfig

Returns

WorkspacesClient

Inherited from

BaseClient.constructor

Properties

PropertyModifierType
apiTokenreadonlystring
baseUrl?readonlystring
customFetch?readonlyCustomFetch
defaultVersionreadonly"v1"

Methods

createWorkspace()

createWorkspace(name: string): Promise<{
avatarId?: string | null;
avatarUrls?: | {
s195: string;
s35: string;
s60: string;
s640: string;
}
| null;
created: Date;
creator: number;
defaultConversation?: string | null;
id: number;
name: string;
plan?: string | null;
}>;

Creates a new workspace.

Parameters

ParameterTypeDescription
namestringThe name of the new workspace.

Returns

Promise<{ avatarId?: string | null; avatarUrls?: | { s195: string; s35: string; s60: string; s640: string; } | null; created: Date; creator: number; defaultConversation?: string | null; id: number; name: string; plan?: string | null; }>

The created workspace object.

Example

const workspace = await api.workspaces.createWorkspace('My Team')
console.log('Created:', workspace.name)

getBaseUri()

protected getBaseUri(): string;

Returns the base URI for an API request, with a guaranteed trailing slash so relative paths resolve cleanly through URL.

Returns

string

Inherited from

BaseClient.getBaseUri

getDefaultWorkspace()

getDefaultWorkspace(): Promise<{
avatarId?: string | null;
avatarUrls?: | {
s195: string;
s35: string;
s60: string;
s640: string;
}
| null;
created: Date;
creator: number;
defaultConversation?: string | null;
id: number;
name: string;
plan?: string | null;
}>;

Gets the user's default workspace.

Returns

Promise<{ avatarId?: string | null; avatarUrls?: | { s195: string; s35: string; s60: string; s640: string; } | null; created: Date; creator: number; defaultConversation?: string | null; id: number; name: string; plan?: string | null; }>

The default workspace object.

Example

const workspace = await api.workspaces.getDefaultWorkspace()
console.log(workspace.name)

getLinkBaseUrl()

protected getLinkBaseUrl(): string | undefined;

Base URL for entity web links, or undefined to use getFullCommsURL's default web app. Trailing-slash normalization happens in getFullCommsURL, so the configured value is returned verbatim.

Returns

string | undefined

Inherited from

BaseClient.getLinkBaseUrl

getPublicChannels()

getPublicChannels(id: number): Promise<{
archived: boolean;
color?: number | null;
created: Date;
creator: number;
defaultGroups?: string[] | null;
defaultRecipients?: number[] | null;
description?: string | null;
filters?: Record<string, string> | null;
icon?: number | null;
id: string;
isFavorited?: boolean | null;
name: string;
public: boolean;
url: string;
useDefaultRecipients?: boolean | null;
userIds?: number[] | null;
version: number;
workspaceId: number;
}[]>;

Gets the public channels of a workspace.

Parameters

ParameterTypeDescription
idnumberThe workspace ID.

Returns

Promise<{ archived: boolean; color?: number | null; created: Date; creator: number; defaultGroups?: string[] | null; defaultRecipients?: number[] | null; description?: string | null; filters?: Record<string, string> | null; icon?: number | null; id: string; isFavorited?: boolean | null; name: string; public: boolean; url: string; useDefaultRecipients?: boolean | null; userIds?: number[] | null; version: number; workspaceId: number; }[]>

An array of public channel objects.

Example

const channels = await api.workspaces.getPublicChannels(123)
channels.forEach(ch => console.log(ch.name))

getWorkspace()

getWorkspace(id: number): Promise<{
avatarId?: string | null;
avatarUrls?: | {
s195: string;
s35: string;
s60: string;
s640: string;
}
| null;
created: Date;
creator: number;
defaultConversation?: string | null;
id: number;
name: string;
plan?: string | null;
}>;

Gets a single workspace object by id.

Parameters

ParameterTypeDescription
idnumberThe workspace ID.

Returns

Promise<{ avatarId?: string | null; avatarUrls?: | { s195: string; s35: string; s60: string; s640: string; } | null; created: Date; creator: number; defaultConversation?: string | null; id: number; name: string; plan?: string | null; }>

The workspace object.

Example

const workspace = await api.workspaces.getWorkspace(123)
console.log(workspace.name)

getWorkspaces()

getWorkspaces(): Promise<{
avatarId?: string | null;
avatarUrls?: | {
s195: string;
s35: string;
s60: string;
s640: string;
}
| null;
created: Date;
creator: number;
defaultConversation?: string | null;
id: number;
name: string;
plan?: string | null;
}[]>;

Gets all the user's workspaces.

Returns

Promise<{ avatarId?: string | null; avatarUrls?: | { s195: string; s35: string; s60: string; s640: string; } | null; created: Date; creator: number; defaultConversation?: string | null; id: number; name: string; plan?: string | null; }[]>

An array of all workspaces the user belongs to.

Example

const workspaces = await api.workspaces.getWorkspaces()
workspaces.forEach(ws => console.log(ws.name))

removeWorkspace()

removeWorkspace(id: number): Promise<void>;

Removes a workspace and all its data (not recoverable).

Parameters

ParameterTypeDescription
idnumberThe workspace ID.

Returns

Promise<void>

Example

await api.workspaces.removeWorkspace(123)

updateWorkspace()

updateWorkspace(id: number, name: string): Promise<{
avatarId?: string | null;
avatarUrls?: | {
s195: string;
s35: string;
s60: string;
s640: string;
}
| null;
created: Date;
creator: number;
defaultConversation?: string | null;
id: number;
name: string;
plan?: string | null;
}>;

Updates an existing workspace.

Parameters

ParameterTypeDescription
idnumberThe workspace ID.
namestringThe new name for the workspace.

Returns

Promise<{ avatarId?: string | null; avatarUrls?: | { s195: string; s35: string; s60: string; s640: string; } | null; created: Date; creator: number; defaultConversation?: string | null; id: number; name: string; plan?: string | null; }>

The updated workspace object.

Example

const workspace = await api.workspaces.updateWorkspace(123, 'New Team Name')