Files
rustfs-console/hooks/use-access-keys.ts
T
安正超 6f1193f6e4 chore: replace codebase with Next.js version (console-new) (#46)
* chore: replace codebase with Next.js version (console-new)

- Migrate from Nuxt/Vue to Next.js/React
- Same repo, dev-pr branch has shared history with main for PR

* chore: wip

* ci: pin pnpm to latest in workflows, packageManager 10.19.0

* ci: use pnpm version from package.json only (fix version mismatch)

* fix: CI - add root page redirect, fix TS types and lint (api-client, aws4fetch, upload-task, hooks)

* fix(ci): add type-check script for TypeScript Check job

* fix(ci): resolve Code Formatting job - ESLint errors (setState-in-effect, refs, static-components, preserve-memoization)

* fix(ci): add lint:fix script for quality workflow Auto-fix step

* fix(ci): add SVG module type declaration for TypeScript Check
2026-02-01 21:23:31 +08:00

62 lines
1.5 KiB
TypeScript

"use client"
import { useCallback } from "react"
import { useApi } from "@/contexts/api-context"
export function useAccessKeys() {
const api = useApi()
const listUserServiceAccounts = useCallback(
async (params: Record<string, string> = {}) => {
const query = new URLSearchParams(params).toString()
const url = query ? `/list-service-accounts?${query}` : "/list-service-accounts"
return api.get(url)
},
[api]
)
const createServiceAccount = useCallback(
async (data: Record<string, unknown>) => {
return api.put("/add-service-accounts", data)
},
[api]
)
const getServiceAccount = useCallback(
async (name: string) => {
return api.get(`/info-service-account?accessKey=${encodeURIComponent(name)}`)
},
[api]
)
const updateServiceAccount = useCallback(
async (name: string, data: Record<string, unknown>) => {
return api.post(`/update-service-account?accessKey=${encodeURIComponent(name)}`, data)
},
[api]
)
const deleteServiceAccount = useCallback(
async (name: string) => {
return api.delete(`/delete-service-accounts?accessKey=${encodeURIComponent(name)}`)
},
[api]
)
const createServiceAccountCreds = useCallback(
async (data: Record<string, unknown>) => {
return api.post("/service-account-credentials", data)
},
[api]
)
return {
listUserServiceAccounts,
createServiceAccount,
deleteServiceAccount,
createServiceAccountCreds,
updateServiceAccount,
getServiceAccount,
}
}