update api key
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
import { api } from '@/utils/request'
|
||||
import type { PaginatedData, ApiKeyRecord, AdminApiKeyFilters } from '@/types/api'
|
||||
|
||||
export const useAdminApiKeyStore = defineStore('admin-api-key', () => {
|
||||
const keys = ref<ApiKeyRecord[]>([])
|
||||
const loading = ref(false)
|
||||
const pagination = reactive({
|
||||
page: 1,
|
||||
per_page: 15,
|
||||
total: 0,
|
||||
})
|
||||
const filters = reactive<AdminApiKeyFilters>({
|
||||
user_id: undefined,
|
||||
enabled: undefined,
|
||||
})
|
||||
|
||||
async function fetchAllKeys() {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await api.get<PaginatedData<ApiKeyRecord>>('/api/v1/admin/api-keys', {
|
||||
page: pagination.page,
|
||||
per_page: pagination.per_page,
|
||||
user_id: filters.user_id,
|
||||
enabled: filters.enabled,
|
||||
})
|
||||
keys.value = data.items
|
||||
pagination.total = data.total
|
||||
pagination.page = data.page
|
||||
} catch (err: unknown) {
|
||||
const msg = err instanceof Error ? err.message : '获取 API Key 列表失败'
|
||||
message.error(msg)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
async function toggleKey(id: number, enabled: boolean) {
|
||||
try {
|
||||
await api.patch(`/api/v1/admin/api-keys/${id}/toggle`, { enabled })
|
||||
await fetchAllKeys()
|
||||
} catch (err: unknown) {
|
||||
const msg = err instanceof Error ? err.message : '操作失败'
|
||||
message.error(msg)
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteKey(id: number) {
|
||||
try {
|
||||
await api.delete(`/api/v1/admin/api-keys/${id}`)
|
||||
await fetchAllKeys()
|
||||
message.success('已删除')
|
||||
} catch (err: unknown) {
|
||||
const msg = err instanceof Error ? err.message : '删除失败'
|
||||
message.error(msg)
|
||||
}
|
||||
}
|
||||
|
||||
async function toggleUserApiKeyEnabled(userId: number, enabled: boolean) {
|
||||
try {
|
||||
await api.patch(`/api/v1/users/${userId}/api-key-enabled`, { enabled })
|
||||
await fetchAllKeys()
|
||||
} catch (err: unknown) {
|
||||
const msg = err instanceof Error ? err.message : '操作失败'
|
||||
message.error(msg)
|
||||
}
|
||||
}
|
||||
|
||||
function resetFilters() {
|
||||
filters.user_id = undefined
|
||||
filters.enabled = undefined
|
||||
pagination.page = 1
|
||||
}
|
||||
|
||||
return {
|
||||
keys,
|
||||
loading,
|
||||
pagination,
|
||||
filters,
|
||||
fetchAllKeys,
|
||||
toggleKey,
|
||||
deleteKey,
|
||||
toggleUserApiKeyEnabled,
|
||||
resetFilters,
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user