59 lines
1.0 KiB
TypeScript
59 lines
1.0 KiB
TypeScript
import { APIClient } from "./ApiClient";
|
|
|
|
export interface BaseToken {
|
|
name: string;
|
|
networks?: string[];
|
|
max_inactivity: number;
|
|
expiration?: number;
|
|
read_only: boolean;
|
|
}
|
|
|
|
export interface Token extends BaseToken {
|
|
id: number;
|
|
created: number;
|
|
last_used: number;
|
|
}
|
|
|
|
export interface TokenWithSecret extends Token {
|
|
secret: string;
|
|
}
|
|
|
|
export class TokensApi {
|
|
/**
|
|
* Get the list of tokens of the current user
|
|
*/
|
|
static async GetList(): Promise<Token[]> {
|
|
return (
|
|
await APIClient.exec({
|
|
uri: "/tokens",
|
|
method: "GET",
|
|
})
|
|
).data;
|
|
}
|
|
|
|
/**
|
|
* Create a new token
|
|
*/
|
|
static async Create(t: BaseToken): Promise<TokenWithSecret> {
|
|
return (
|
|
await APIClient.exec({
|
|
uri: "/token",
|
|
method: "POST",
|
|
jsonData: t,
|
|
})
|
|
).data;
|
|
}
|
|
|
|
/**
|
|
* Delete a token
|
|
*/
|
|
static async Delete(t: Token): Promise<void> {
|
|
return (
|
|
await APIClient.exec({
|
|
uri: `/token/${t.id}`,
|
|
method: "DELETE",
|
|
})
|
|
).data;
|
|
}
|
|
}
|