Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7aee4b708d | ||
|
|
1af5900593 | ||
|
|
78ef6d9ca0 | ||
|
|
cee0bc4cfe | ||
|
|
9a8510d833 | ||
|
|
ee034a7252 | ||
|
|
65bb076384 |
+22
-39
@@ -80,10 +80,11 @@ export class SimApiCore {
|
||||
private debug: boolean = true
|
||||
private auth: SimApiAuthConfig = {
|
||||
token_name: 'simapi-auth-token',
|
||||
check_url: '/auth/check',
|
||||
check_url: '/user/info',
|
||||
logout_url: '/auth/logout',
|
||||
login_url: '/auth/login',
|
||||
}
|
||||
webConfig: Map<string, Map<string, object>> = new Map();
|
||||
|
||||
private api: SimApiApiConfig = {
|
||||
endpoints: {default: ''},
|
||||
@@ -129,7 +130,7 @@ export class SimApiCore {
|
||||
this.debug = config.debug
|
||||
}
|
||||
if (config.endpoints) {
|
||||
this.api.endpoints = { ...this.api.endpoints, ...config.endpoints }
|
||||
this.api.endpoints = {...this.api.endpoints, ...config.endpoints}
|
||||
}
|
||||
if (config.defaultEndpoint) {
|
||||
this.api.defaultEndpoint = config.defaultEndpoint
|
||||
@@ -185,7 +186,7 @@ export class SimApiCore {
|
||||
|
||||
setToken(token: string): void {
|
||||
const name = this.auth.token_name
|
||||
document.cookie = `${name}=${token}; path=/; secure; samesite=none`
|
||||
document.cookie = `${name}=${token}; path=/; max-age=315360000; secure; samesite=none`
|
||||
}
|
||||
|
||||
removeToken(): void {
|
||||
@@ -212,32 +213,19 @@ export class SimApiCore {
|
||||
console.log('[DEBUG]', ...args)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取版本信息
|
||||
*
|
||||
* @param endpointName - 指定从哪个 endpoint 获取版本,默认使用 default endpoint
|
||||
* @returns 版本信息对象
|
||||
*
|
||||
* @example
|
||||
* // 从默认 endpoint 获取
|
||||
* const versions = await api.getVersion()
|
||||
*
|
||||
* // 从指定 endpoint 获取
|
||||
* const versions = await api.getVersion('backup')
|
||||
*/
|
||||
async getVersion(endpointName?: string): Promise<SimApiVersions> {
|
||||
const versions: SimApiVersions = {
|
||||
uiApp: typeof AppVersion === 'undefined' ? "0.0.0-develop" : AppVersion,
|
||||
uiSimApi: typeof SimApiVersion === 'undefined' ? "0.0.0-develop" : SimApiVersion,
|
||||
apiApp: '0.0.0',
|
||||
apiSimApi: '0.0.0',
|
||||
apiAppFull: '0.0.0',
|
||||
apiSimApiFull: '0.0.0',
|
||||
};
|
||||
try {
|
||||
const resp = await this.query<any>('/versions', {}, endpointName)
|
||||
async getConfig(reload: boolean = false, endpointName: string = 'default'): Promise<Map<string, object>> {
|
||||
if (!this.webConfig.has(endpointName) || reload) {
|
||||
const versions: SimApiVersions = {
|
||||
uiApp: typeof AppVersion === 'undefined' ? "0.0.0-develop" : AppVersion,
|
||||
uiSimApi: typeof SimApiVersion === 'undefined' ? "0.0.0-develop" : SimApiVersion,
|
||||
apiApp: '0.0.0',
|
||||
apiSimApi: '0.0.0',
|
||||
apiAppFull: '0.0.0',
|
||||
apiSimApiFull: '0.0.0',
|
||||
};
|
||||
const resp = await this.query<any>('/config', {}, endpointName)
|
||||
if (resp?.data) {
|
||||
const d = resp.data
|
||||
const d = resp.data.versions;
|
||||
versions.apiApp = d.App?.split('+')[0] ?? '0.0.0';
|
||||
versions.apiSimApi = d.SimApi?.split('+')[0] ?? '0.0.0';
|
||||
versions.apiAppFull = d.App ?? '0.0.0';
|
||||
@@ -245,12 +233,12 @@ export class SimApiCore {
|
||||
if (this.debug) {
|
||||
console.log(`UI主应用版本: ${versions.uiApp}\nUISimApi版本: ${versions.uiSimApi}\nAPI主应用版本: ${versions.apiApp}\nAPISimApi版本: ${versions.apiSimApi}`)
|
||||
}
|
||||
return versions
|
||||
resp.data.versions = versions;
|
||||
this.webConfig.set(endpointName, resp.data);
|
||||
|
||||
}
|
||||
} catch {
|
||||
// 版本获取失败返回默认值
|
||||
}
|
||||
return versions;
|
||||
return this.webConfig.get(endpointName)!;
|
||||
}
|
||||
|
||||
async query<T = any>(
|
||||
@@ -340,12 +328,7 @@ export class SimApiCore {
|
||||
return true
|
||||
}
|
||||
|
||||
async checkLogin(url?: string | null): Promise<void> {
|
||||
if (url !== null) {
|
||||
await this.query(url ?? this.auth.check_url).catch(() => {
|
||||
})
|
||||
} else if (this.getToken()) {
|
||||
this.api.businessCallback[401]?.(null)
|
||||
}
|
||||
async checkLogin(url?: string | null): Promise<any> {
|
||||
return this.query(url ?? this.auth.check_url);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -11,11 +11,12 @@ export const useSimApi = defineStore('simapi', {
|
||||
_core: new SimApiCore(),
|
||||
}),
|
||||
getters: {
|
||||
webConfig: state => state._core.webConfig,
|
||||
IsDebug: state => state._core.isDebug
|
||||
},
|
||||
actions: {
|
||||
// 所有方法直接代理到 core
|
||||
async loadFromFile(file: string = 'config.json'): Promise<void> {
|
||||
async loadFromFile(file: string = '/config.json'): Promise<void> {
|
||||
return this._core.loadFromFile(file)
|
||||
},
|
||||
|
||||
@@ -76,8 +77,8 @@ export const useSimApi = defineStore('simapi', {
|
||||
return this._core.getEndpoint(name)
|
||||
},
|
||||
|
||||
async getVersion(endpointName?: string): Promise<SimApiVersions> {
|
||||
return this._core.getVersion(endpointName)
|
||||
async getConfig(reload = false, endpointName?: string): Promise<Map<string, object>> {
|
||||
return this._core.getConfig(reload, endpointName)
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user