This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import { request } from '@/utils/request';
|
||||
|
||||
export interface SetupStatus {
|
||||
required: boolean;
|
||||
locked: boolean;
|
||||
supportedDatabaseTypes: string[];
|
||||
message: string;
|
||||
}
|
||||
|
||||
export interface SetupDatabaseRequest {
|
||||
setupCode: string;
|
||||
databaseType: 'MYSQL' | 'POSTGRESQL';
|
||||
host: string;
|
||||
port: number;
|
||||
database: string;
|
||||
username: string;
|
||||
password: string;
|
||||
}
|
||||
|
||||
export interface SetupConnection {
|
||||
successful: boolean;
|
||||
databaseType: string;
|
||||
serverVersion: string;
|
||||
schemaReady: boolean;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export interface SetupCompleteRequest extends SetupDatabaseRequest {
|
||||
adminUsername: string;
|
||||
adminDisplayName: string;
|
||||
adminPassword: string;
|
||||
adminPasswordConfirmation: string;
|
||||
}
|
||||
|
||||
export interface SetupCompleted {
|
||||
completed: boolean;
|
||||
username: string;
|
||||
message: string;
|
||||
restartAfterSeconds: number;
|
||||
}
|
||||
|
||||
function normalizeStatus(value: SetupStatus): SetupStatus {
|
||||
return {
|
||||
required: Boolean(value?.required),
|
||||
locked: Boolean(value?.locked),
|
||||
supportedDatabaseTypes: Array.isArray(value?.supportedDatabaseTypes) ? value.supportedDatabaseTypes : [],
|
||||
message: value?.message || '',
|
||||
};
|
||||
}
|
||||
|
||||
export function getSetupStatus() {
|
||||
return request.get<SetupStatus>({ url: '/setup/status' }).then(normalizeStatus);
|
||||
}
|
||||
|
||||
export function testSetupConnection(data: SetupDatabaseRequest) {
|
||||
return request.post<SetupConnection>({ url: '/setup/test-connection', data }).then((value) => value);
|
||||
}
|
||||
|
||||
export function completeSetup(data: SetupCompleteRequest) {
|
||||
return request.post<SetupCompleted>({ url: '/setup/complete', data }).then((value) => value);
|
||||
}
|
||||
Reference in New Issue
Block a user