feat: implement backend database management API and frontend service integration
This commit is contained in:
@@ -176,4 +176,15 @@ class SchemaController extends Controller
|
||||
return Response::json(['error' => $e->getMessage()], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function tablesMetadata(Request $request, $database)
|
||||
{
|
||||
try {
|
||||
$request->merge(['database' => $database]);
|
||||
$this->initializeDriver($request);
|
||||
return Response::json($this->databaseService->getTablesMetadata($database));
|
||||
} catch (\Exception $e) {
|
||||
return Response::json(['error' => $e->getMessage()], 400);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,4 +138,12 @@ class DatabaseService
|
||||
{
|
||||
return $this->getDriver()->truncateTable($table);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get metadata for all tables in a database.
|
||||
*/
|
||||
public function getTablesMetadata(string $database): array
|
||||
{
|
||||
return $this->getDriver()->getTablesMetadata($database);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ Route::prefix('schema')->group(function () {
|
||||
Route::get('/databases', [SchemaController::class, 'databases']);
|
||||
Route::get('/tables/{database}', [SchemaController::class, 'tables']);
|
||||
Route::get('/metadata/{database}', [SchemaController::class, 'metadata']);
|
||||
Route::get('/metadata/{database}/tables', [SchemaController::class, 'tablesMetadata']);
|
||||
Route::get('/metadata/{database}/{table}', [SchemaController::class, 'tableMetadata']);
|
||||
Route::post('/truncate/{table}', [SchemaController::class, 'truncate']);
|
||||
Route::get('/{table}', [SchemaController::class, 'schema']);
|
||||
|
||||
Reference in New Issue
Block a user