From 285f7c4f077b73b095456ea53d313b9475584954 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Thu, 12 Dec 2019 17:11:52 +0100 Subject: [PATCH] FEAT #11158 TIME 1:30 Get encoded file from only office --- rest/index.php | 2 +- .../controllers/JnlpController.php | 28 +++++++------------ 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/rest/index.php b/rest/index.php index e7a7aba82d1..e2fe6156a57 100755 --- a/rest/index.php +++ b/rest/index.php @@ -256,11 +256,11 @@ $app->put('/indexingModels/{id}/enable', \IndexingModel\controllers\IndexingMode $app->delete('/indexingModels/{id}', \IndexingModel\controllers\IndexingModelController::class . ':delete'); //Jnlp -$app->post('/test', \ContentManagement\controllers\JnlpController::class . ':test'); $app->post('/jnlp', \ContentManagement\controllers\JnlpController::class . ':generateJnlp'); $app->get('/jnlp/{jnlpUniqueId}', \ContentManagement\controllers\JnlpController::class . ':renderJnlp'); $app->post('/jnlp/{jnlpUniqueId}', \ContentManagement\controllers\JnlpController::class . ':processJnlp'); $app->get('/jnlp/lock/{jnlpUniqueId}', \ContentManagement\controllers\JnlpController::class . ':isLockFileExisting'); +$app->get('/onlyOffice/encodedFile', \ContentManagement\controllers\JnlpController::class . ':getEncodedFileFromOnlyOffice'); //Links $app->get('/links/resId/{resId}', \Link\controllers\LinkController::class . ':getByResId'); diff --git a/src/app/contentManagement/controllers/JnlpController.php b/src/app/contentManagement/controllers/JnlpController.php index 82378356200..ebbfb96ec46 100755 --- a/src/app/contentManagement/controllers/JnlpController.php +++ b/src/app/contentManagement/controllers/JnlpController.php @@ -16,6 +16,7 @@ namespace ContentManagement\controllers; use Attachment\models\AttachmentModel; use Docserver\models\DocserverModel; +use Respect\Validation\Validator; use Slim\Http\Request; use Slim\Http\Response; use SrcCore\controllers\UrlController; @@ -381,28 +382,19 @@ class JnlpController return $response->saveXML(); } - public static function test(Request $request, Response $response) + public static function getEncodedFileFromOnlyOffice(Request $request, Response $response) { + $queryParams = $request->getQueryParams(); - if (($body_stream = file_get_contents("php://input"))===false) { - echo "Bad Request"; + if (!Validator::stringType()->notEmpty()->validate($queryParams['url'])) { + return $response->withStatus(400)->withJson(['errors' => 'Query params url is empty']); } - - $data = json_decode($body_stream, true); - if ($data["status"] == 2 || $data["status"] == 6) { - $downloadUri = $data["url"]; - - if (($new_data = file_get_contents($downloadUri))===false) { - echo "Bad Response"; - } else { - $tmpPath = CoreConfigModel::getTmpPath(); - $fileOnTmp = "tmp_file_onlyoffice_{$data["key"]}.odt"; - file_put_contents($tmpPath.$fileOnTmp, $new_data, LOCK_EX); - // echo $new_data; - //file_put_contents($path_for_save, $new_data, LOCK_EX); - } + + $fileContent = file_get_contents($queryParams['url']); + if ($fileContent == false) { + return $response->withStatus(400)->withJson(['errors' => 'No content found']); } - return $response->withJson(['error' => 0]); + return $response->withJson(['encodedFile' => base64_encode($fileContent)]); } } -- GitLab