mirror of
https://github.com/DrizzleTime/Foxel.git
synced 2026-05-10 17:43:35 +08:00
35 lines
983 B
TypeScript
35 lines
983 B
TypeScript
import request from './client';
|
|
|
|
export interface AdapterItem {
|
|
id: number;
|
|
name: string;
|
|
type: string;
|
|
config: any;
|
|
enabled: boolean;
|
|
path?: string | null;
|
|
sub_path?: string | null;
|
|
}
|
|
|
|
export interface AdapterTypeField {
|
|
key: string;
|
|
label: string;
|
|
type: 'string' | 'password' | 'number' | 'boolean';
|
|
required?: boolean;
|
|
placeholder?: string;
|
|
default?: any;
|
|
}
|
|
|
|
export interface AdapterTypeMeta {
|
|
type: string;
|
|
name: string;
|
|
config_schema: AdapterTypeField[];
|
|
}
|
|
|
|
export const adaptersApi = {
|
|
list: () => request<AdapterItem[]>('/adapters'),
|
|
create: (payload: Omit<AdapterItem, 'id'>) => request<AdapterItem>('/adapters', { method: 'POST', json: payload }),
|
|
update: (id: number, payload: Omit<AdapterItem, 'id'>) => request<AdapterItem>(`/adapters/${id}`, { method: 'PUT', json: payload }),
|
|
remove: (id: number) => request<void>(`/adapters/${id}`, { method: 'DELETE' }),
|
|
available: () => request<AdapterTypeMeta[]>('/adapters/available'),
|
|
};
|