diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 7947f13..3403cd6 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -160,6 +160,47 @@ final class ApiController extends Controller */ public function apiExchangeExport(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { + $export = $this->exportDataFromRequest($request); + $status = NotificationLevel::ERROR; + $message = 'Export failed.'; + + if ($export) { + $status = NotificationLevel::OK; + $message = 'Export succeeded.'; + } + + $response->set($request->uri->__toString(), [ + 'status' => $status, + 'title' => 'Exchange', + 'message' => $message, + ]); + } + + /** + * Method to export data based on a request + * + * @param RequestAbstract $request Request + * + * @return bool + * + * @since 1.0.0 + */ + private function exportDataFromRequest(RequestAbstract $request) : bool + { + /** @var \Modules\Exchange\Models\InterfaceManager[] $interfaces */ + $interfaces = InterfaceManagerMapper::getAll(); + foreach ($interfaces as $interface) { + if ($request->getData('exchange') ?? '' === $interface->getInterfacePath()) { + $class = '\\Modules\\Exchange\\Interfaces\\' . $interface->getInterfacePath() . '\\Exporter'; + $exporter = new $class($this->app->dbPool->get()); + + return $exporter->exportFromRequest($request); + } + } + + Directory::delete(__DIR__ . '/../tmp/'); + + return false; } /** diff --git a/Interfaces/OMS/Export/LanguageExport.php b/Interfaces/OMS/Export/LanguageExport.php new file mode 100644 index 0000000..e69de29 diff --git a/Interfaces/OMS/Exporter.php b/Interfaces/OMS/Exporter.php new file mode 100644 index 0000000..07043b1 --- /dev/null +++ b/Interfaces/OMS/Exporter.php @@ -0,0 +1,102 @@ +exportLanguage($start, $end); + } + + /** + * Export data from request + * + * @param RequestAbstract $request Request + * + * @return bool + * + * @since 1.0.0 + */ + public function exportFromRequest(RequestAbstract $request) : bool + { + $start = new \DateTime($request->getData('start') ?? 'now'); + $end = new \DateTime($request->getData('end') ?? 'now'); + + $this->account = $request->header->account; + + if (((bool) ($request->getData('language') ?? false))) { + $this->exportLanguage(); + } + + return true; + } + + /** + * Export language + * + * @return void + * + * @since 1.0.0 + */ + public function exportLanguage() : void + { + + } +} diff --git a/Interfaces/OMS/Import/LanguageImport.php b/Interfaces/OMS/Import/LanguageImport.php new file mode 100644 index 0000000..e69de29 diff --git a/Interfaces/OMS/Importer.php b/Interfaces/OMS/Importer.php new file mode 100644 index 0000000..ba3a1d5 --- /dev/null +++ b/Interfaces/OMS/Importer.php @@ -0,0 +1,121 @@ +importLanguage(); + } + + /** + * Import data from request + * + * @param RequestAbstract $request Request + * + * @return bool + * + * @since 1.0.0 + */ + public function importFromRequest(RequestAbstract $request) : bool + { + $start = new \DateTime($request->getData('start') ?? 'now'); + $end = new \DateTime($request->getData('end') ?? 'now'); + + if ($request->getData('db') !== null) { + $this->remote = ConnectionFactory::create([ + 'db' => (string) ($request->getData('db') ?? ''), + 'host' => (string) ($request->getData('host') ?? ''), + 'port' => (int) ($request->getData('port') ?? 0), + 'database' => (string) ($request->getData('database') ?? ''), + 'login' => (string) ($request->getData('login') ?? ''), + 'password' => (string) ($request->getData('password') ?? ''), + 'datetimeformat' => (string) ($request->getData('datetimeformat') ?? 'Y-m-d H:i:s'), + ]); + + $this->remote->connect(); + + if ($this->remote->getStatus() !== DatabaseStatus::OK) { + return false; + } + } + + $this->account = $request->header->account; + + if (((bool) ($request->getData('language') ?? false))) { + $this->importLanguage($request); + } + + return true; + } + + /** + * Import language + * + * @return void + * + * @since 1.0.0 + */ + public function importLanguage(RequestAbstract $request) : void + { + $upload = ApiController::uploadFilesToDestination($request->getFiles()); + } +} diff --git a/Interfaces/OMS/export.tpl.php b/Interfaces/OMS/export.tpl.php new file mode 100644 index 0000000..e69de29 diff --git a/Interfaces/OMS/import.tpl.php b/Interfaces/OMS/import.tpl.php new file mode 100644 index 0000000..b8bc366 --- /dev/null +++ b/Interfaces/OMS/import.tpl.php @@ -0,0 +1,19 @@ +
+
+
+
+
getHtml('Langauge'); ?> - OMS
+
+ + +
+
+
+
+
+ +
+
+
+
+
diff --git a/Interfaces/OMS/interface.json b/Interfaces/OMS/interface.json index bea7ebb..8916412 100755 --- a/Interfaces/OMS/interface.json +++ b/Interfaces/OMS/interface.json @@ -4,5 +4,5 @@ "website": "", "path": "OMS", "export": true, - "import": false + "import": true } \ No newline at end of file