can you add mongodb support please ?
fadighattas100 opened this issue · 0 comments
fadighattas100 commented
please can you do somethings like
use Doctrine\DBAL\Schema\Column;
class GraphBuilder
{
protected function getTableColumnsFromModel(string $model)
{
try {
$model = app($model);
switch ($model->getConnectionName()) {
case 'mongodb':
if (method_exists($model, 'columns')) {
$columns = $model::columns();
$colloction = new Collection();
foreach ($columns as $column => $type) {
$column = new Column($column, $type);
$colloction->push($column);
}
return $colloction->toArray();
}
return [];
default:
$table = $model->getConnection()->getTablePrefix().$model->getTable();
$schema = $model->getConnection()->getDoctrineSchemaManager($table);
$databasePlatform = $schema->getDatabasePlatform();
$databasePlatform->registerDoctrineTypeMapping('enum', 'string');
$database = null;
if (strpos($table, '.')) {
list($database, $table) = explode('.', $table);
}
return $schema->listTableColumns($table, $database);
}
} catch (\Exception $e) {
}
return [];
}
}
and in the mongo model
/**
* @return array|bool
*/
protected static function columns()
{
try {
return [
'id' => Type::getType(Type::BIGINT),
'component_type_id' => Type::getType(Type::BIGINT),
'labels' => Type::getType(Type::TARRAY),
'visualization_type' => Type::getType(Type::STRING),
'created_at' => Type::getType(Type::DATETIMETZ),
'data' => Type::getType(Type::JSON),
];
} catch (\Exception $e) {
if (config('app.debug')) {
dd($e);
}
return false;
}
}