@kevisual/noco
Version:
一个轻量级的 NocoDB API SDK,支持表记录操作和 Base 管理功能。
50 lines (47 loc) • 1.46 kB
text/typescript
import { Query, ResponseList } from '../api.ts';
type Options = {
query: Query;
};
export class Users {
query?: Query;
constructor(options?: Options) {
this.query = options?.query;
}
async listUsers(baseId?: string): Promise<ResponseList<UserItem>> {
// return this.query.makeRequest(`/api/v2/meta/bases/${baseId}/users`, {
// method: 'GET',
// });
return this.query.makeRequest(`api/v1/db/meta/projects/${baseId}/users`, {
method: 'GET',
});
}
async createUser(baseId: string, data: Partial<UserItem>): Promise<UserItem> {
// return this.query.makeRequest(`/api/v2/meta/bases/${baseId}/users`, {
return this.query.makeRequest(`/api/v1/db/meta/projects/${baseId}/users`, {
method: 'POST',
data,
});
}
async deleteUser(userId: string): Promise<{ code: number; message: string }> {
// return this.query.makeRequest(`/api/v2/meta/bases/${baseId}/users/${userId}`, {
return this.query.makeRequest(`/api/v1/users/${userId}`, {
method: 'DELETE',
headers: {
'xc-gui': 'true'
}
});
}
}
const userRoles = ['no-access', 'commenter', 'editor', 'guest', 'owner', 'viewer', 'creator'] as const;
type UserRole = typeof userRoles[number];
type UserItem = {
email: string;
display_name: string;
invite_token: string;
id: string;
meta?: any;
main_roles?: string;// org-level-creator,super
base_id?: string;
roles: UserRole;
created_at: string;
};