mirror of
https://github.com/rustfs/console.git
synced 2026-10-31 20:58:27 +08:00
- Fix spelling: auth/heros -> auth/heroes, AuthHerosStatic -> AuthHeroStatic - Rename redundant: TaskTaskPanel/Item -> TaskPanel/TaskItem; buckets-info/new-form -> bucket-info/bucket-new-form; PoliciesFormItem -> PolicyForm - Drop directory prefix in filenames: bucket-info.tsx -> info.tsx under buckets/, same for user/, object/, events/, etc. - Move change-password from access-keys/ to user/; move user-dropdown, user-selector to user/; bucket-selector to buckets/ - Extract tasks to components/tasks/ (item, panel, stats-button) - Remove unused component-example.tsx and example.tsx - Rename lib/ui to lib/feedback (message, dialog); move api-error-handler from lib/utils/ to lib/ - Update AGENTS.md with component naming rules and lib/feedback vs components/ui
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import type {
|
|
ApiErrorHandlerCallback,
|
|
IApiErrorHandler,
|
|
} from "@/types/api"
|
|
|
|
export class ApiErrorHandler implements IApiErrorHandler {
|
|
private onUnauthorized?: ApiErrorHandlerCallback
|
|
private onForbidden?: ApiErrorHandlerCallback
|
|
private onServerError?: ApiErrorHandlerCallback
|
|
|
|
constructor(callbacks?: {
|
|
onUnauthorized?: ApiErrorHandlerCallback
|
|
onForbidden?: ApiErrorHandlerCallback
|
|
onServerError?: ApiErrorHandlerCallback
|
|
}) {
|
|
this.onUnauthorized = callbacks?.onUnauthorized
|
|
this.onForbidden = callbacks?.onForbidden
|
|
this.onServerError = callbacks?.onServerError
|
|
}
|
|
|
|
async handle401(): Promise<void> {
|
|
if (this.onUnauthorized) {
|
|
await this.onUnauthorized()
|
|
}
|
|
}
|
|
|
|
async handle403(): Promise<void> {
|
|
if (this.onForbidden) {
|
|
await this.onForbidden()
|
|
}
|
|
}
|
|
|
|
async handleServerError(): Promise<void> {
|
|
if (this.onServerError) {
|
|
await this.onServerError()
|
|
}
|
|
}
|
|
|
|
async handleByStatus(status: number): Promise<void> {
|
|
switch (status) {
|
|
case 401:
|
|
await this.handle401()
|
|
break
|
|
case 403:
|
|
await this.handle403()
|
|
break
|
|
case 500:
|
|
case 502:
|
|
case 503:
|
|
case 504:
|
|
await this.handleServerError()
|
|
break
|
|
}
|
|
}
|
|
}
|