Vai al contenuto principale
I workspace sono esposti dal modulo api.workspaces — una novità della v4. Sono disponibili sui piani Standard, Pro ed Enterprise.

Creare un workspace

const { id: workspaceId } = await api.workspaces.create({ name: "Acme" });
Il name deve essere lungo da 1 a 32 caratteri.

Elencare i workspace

api.workspaces.list() restituisce ogni workspace in cui l’utente autenticato è proprietario o membro.
const workspaces = await api.workspaces.list();

for (const ws of workspaces) {
    console.log(
        `${ws.name} (${ws.memberList.length} members, ${ws.applicationList.length} apps)`,
    );
}
Nella v3 ws.members e ws.applications contenevano array di dati grezzi. Nella v4 questi sono ora moduli (ws.members.add(...), ws.applications.add(...)). Gli array grezzi sono stati spostati in ws.memberList e ws.applicationList.

Recuperare un singolo workspace

const workspace = await api.workspaces.fetch(workspaceId);

console.log(workspace.id);
console.log(workspace.name);
console.log(workspace.owner);
console.log(workspace.createdAt);
console.log(workspace.memberList);
console.log(workspace.applicationList);

Invitare membri

Invitare un membro è un handshake in due fasi — l’invitato dimostra il proprio consenso generando un codice a breve durata (5 minuti) dal suo client, e il proprietario lo consuma.
// 1. From the invitee's own SDK client
const otherApi = new SquareCloudAPI(process.env.OTHER_USER_API_KEY!);
const code = await otherApi.workspaces.generateInviteCode();

// 2. From the workspace owner's client
await workspace.members.add(code, "maintain");
Ruoli validi per l’argomento group:
RuoloDescrizione
viewAccesso in sola lettura
managerGestione delle applicazioni
maintainGestione delle applicazioni + membri di livello inferiore al proprio
adminAmministrazione completa
Il ruolo owner non può essere assegnato tramite l’API — il trasferimento di proprietà non è esposto.

Modificare il ruolo di un membro

await workspace.members.update("1234567890abcdef1234567890abcdef", "admin");

Rimuovere un membro

await workspace.members.remove("1234567890abcdef1234567890abcdef");
Solo il proprietario del workspace può rimuovere i membri.

Condividere applicazioni

await workspace.applications.add("abc123def456abc123def456");
await workspace.applications.remove("abc123def456abc123def456");

Abbandonare o eliminare un workspace

// As a member
await workspace.leave();

// As the owner (irreversible)
await workspace.delete();
Puoi anche eliminare o abbandonare tramite ID direttamente dal modulo:
await api.workspaces.delete(workspaceId);
await api.workspaces.leave(workspaceId);