update
This commit is contained in:
@@ -1,21 +1,29 @@
|
||||
import { CNBCore, CNBCoreOptions } from "../cnb-core.ts";
|
||||
|
||||
import { Result } from "@kevisual/query";
|
||||
export class User extends CNBCore {
|
||||
constructor(options: CNBCoreOptions<{}>) {
|
||||
super({ token: options.token, cookie: options.cookie });
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户信息
|
||||
* @returns
|
||||
* 获取当前用户信息,使用 Cookie 认证
|
||||
* @returns
|
||||
*/
|
||||
getCurrentUser(): Promise<any> {
|
||||
getCurrentUser(): Promise<Result<UserInfo>> {
|
||||
const url = `https://cnb.cool/user`;
|
||||
return this.get({
|
||||
url,
|
||||
useCookie: true,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 使用 Token 获取用户信息
|
||||
* @returns
|
||||
*/
|
||||
getUser(): Promise<Result<UserInfo>> {
|
||||
const url = '/user';
|
||||
return this.get({ url });
|
||||
}
|
||||
createAccessToken(data?: { description?: string, scope?: string }): Promise<AccessTokenResponse> {
|
||||
const scope = data?.scope || 'mission-manage:rw,mission-delete:rw,group-delete:rw,group-manage:rw,group-resource:rw,account-engage:rw,account-email:r,account-profile:rw,registry-delete:rw,registry-manage:rw,registry-package-delete:rw,registry-package:rw,repo-security:r,repo-delete:rw,repo-manage:rw,repo-basic-info:r,repo-cnb-detail:rw,repo-cnb-history:r,repo-cnb-trigger:rw,repo-commit-status:rw,repo-contents:rw,repo-notes:rw,repo-issue:rw,repo-pr:rw,repo-code:rw'
|
||||
const url = 'https://cnb.cool/user/personal_access_tokens'
|
||||
@@ -52,4 +60,57 @@ export class User extends CNBCore {
|
||||
type AccessTokenResponse = {
|
||||
token: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
type UserInfo = {
|
||||
id: string;
|
||||
username: string;
|
||||
nickname: string;
|
||||
type: number;
|
||||
verified: number;
|
||||
verified_expire_in: string;
|
||||
created_at: string;
|
||||
freeze: boolean;
|
||||
locked: boolean;
|
||||
avatar: string;
|
||||
email: string;
|
||||
next_updated_name_at: string;
|
||||
updated_name_at: string;
|
||||
updated_nick_at: string;
|
||||
editable: {
|
||||
avatar: boolean;
|
||||
email: boolean;
|
||||
logoff: boolean;
|
||||
nickname: boolean;
|
||||
'sync-data': boolean;
|
||||
username: boolean;
|
||||
};
|
||||
language: string;
|
||||
appearance: string;
|
||||
gender: number;
|
||||
bio: string;
|
||||
company: string;
|
||||
location: string;
|
||||
site: string;
|
||||
address: string;
|
||||
wechat_mp: string;
|
||||
wechat_mp_qrcode: string;
|
||||
appreciate_status: number;
|
||||
follow_count: number;
|
||||
follower_count: number;
|
||||
reward_count: number;
|
||||
reward_amount: number;
|
||||
stars_count: number;
|
||||
group_count: number;
|
||||
repo_count: number;
|
||||
mission_count: number;
|
||||
registry_count: number;
|
||||
public_repo_count: number;
|
||||
public_mission_count: number;
|
||||
public_registry_count: number;
|
||||
follow_repo_count: number;
|
||||
follow_mission_count: number;
|
||||
readme_repo_path: string;
|
||||
last_login_at: string;
|
||||
last_login_ip: string;
|
||||
}
|
||||
Reference in New Issue
Block a user