mirror of
https://github.com/Karaka-Management/oms-Exchange.git
synced 2026-02-16 01:38:40 +00:00
bug fixes and permission tests
This commit is contained in:
parent
435a1455fa
commit
bfd8c6dd62
|
|
@ -19,6 +19,7 @@ use Modules\Exchange\Models\InterfaceManager;
|
||||||
use Modules\Exchange\Models\InterfaceManagerMapper;
|
use Modules\Exchange\Models\InterfaceManagerMapper;
|
||||||
use Modules\Media\Models\UploadFile;
|
use Modules\Media\Models\UploadFile;
|
||||||
use phpOMS\Autoloader;
|
use phpOMS\Autoloader;
|
||||||
|
use phpOMS\DataStorage\Database\Connection\ConnectionFactory;
|
||||||
use phpOMS\DataStorage\Database\Connection\NullConnection;
|
use phpOMS\DataStorage\Database\Connection\NullConnection;
|
||||||
use phpOMS\Localization\L11nManager;
|
use phpOMS\Localization\L11nManager;
|
||||||
use phpOMS\Message\Http\HttpResponse;
|
use phpOMS\Message\Http\HttpResponse;
|
||||||
|
|
@ -89,12 +90,26 @@ final class ApiController extends Controller
|
||||||
$interface = InterfaceManagerMapper::get()->where('id', $request->getData('id'))->execute();
|
$interface = InterfaceManagerMapper::get()->where('id', $request->getData('id'))->execute();
|
||||||
$dirname = \basename(\dirname($interface->getPath()));
|
$dirname = \basename(\dirname($interface->getPath()));
|
||||||
|
|
||||||
if (!Autoloader::exists($class = '\\Modules\\Exchange\\Interfaces\\' . $dirname . '\\Importer')) {
|
/** @var class-string<\Modules\Exchange\Models\ImporterAbstract> $class */
|
||||||
|
$class = '\\Modules\\Exchange\\Interfaces\\' . $dirname . '\\Importer';
|
||||||
|
if (!Autoloader::exists($class)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// @todo: implement real remote connection if available
|
$remoteConnection = new NullConnection();
|
||||||
$importer = new $class($this->app->dbPool->get(), new NullConnection(), new L11nManager($this->app->appName));
|
if (!empty($request->getData('dbtype'))) {
|
||||||
|
$remoteConnection = ConnectionFactory::create([
|
||||||
|
'db' => $request->getData('dbtype') ?? null,
|
||||||
|
'host' => $request->getData('dbhost') ?? null,
|
||||||
|
'port' => $request->getData('dbport') ?? null,
|
||||||
|
'database' => $request->getData('dbdatabase') ?? null,
|
||||||
|
'login' => $request->getData('dblogin') ?? null,
|
||||||
|
'password' => $request->getData('dbpassword') ?? null,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var \Modules\Exchange\Models\ImporterAbstract $importer */
|
||||||
|
$importer = new $class($this->app->dbPool->get(), $remoteConnection, new L11nManager($this->app->appName));
|
||||||
|
|
||||||
return $importer->importFromRequest($request);
|
return $importer->importFromRequest($request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user