class RiseTeams {
constructor(baseUrl, jwtToken) {
this.baseUrl = baseUrl;
this.headers = {
'Authorization': `Bearer ${jwtToken}`,
'Content-Type': 'application/json'
};
}
async createTeam(name, description, entity_nanoid, admin_wallet) {
const teamData = {
name,
description,
entity_nanoid: entity_nanoid,
admin_wallet: admin_wallet
};
const response = await fetch(`${this.baseUrl}/v2/teams`, {
method: 'POST',
headers: this.headers,
body: JSON.stringify(teamData)
});
return response.json();
}
async getTeam(teamNanoid) {
const response = await fetch(
`${this.baseUrl}/v2/teams/${teamNanoid}`,
{ headers: this.headers }
);
return response.json();
}
async addMember(teamNanoid, userNanoid, role, permissions) {
const memberData = {
user_nanoid: userNanoid,
role,
permissions
};
const response = await fetch(`${this.baseUrl}/v2/teams/${teamNanoid}/members`, {
method: 'POST',
headers: this.headers,
body: JSON.stringify(memberData)
});
return response.json();
}
async updateMemberRole(teamNanoid, userNanoid, newRole, newPermissions) {
const updateData = {
role: newRole,
permissions: newPermissions
};
const response = await fetch(`${this.baseUrl}/v2/teams/${teamNanoid}/members/${userNanoid}`, {
method: 'PUT',
headers: this.headers,
body: JSON.stringify(updateData)
});
return response.json();
}
async removeMember(teamNanoid, userNanoid) {
const response = await fetch(`${this.baseUrl}/v2/teams/${teamNanoid}/members/${userNanoid}`, {
method: 'DELETE',
headers: this.headers
});
return response.json();
}
}
// Usage example
const teamsApi = new RiseTeams(
'https://b2b-api.riseworks.io', // or your environment URL
'your-jwt-token'
);