Skip to content
Snippets Groups Projects
Verified Commit aa9acb55 authored by Damien's avatar Damien
Browse files

FEAT #13441 TIME 1:15 Get template content + some fixes

parent 2e45942b
No related branches found
No related tags found
No related merge requests found
...@@ -461,6 +461,7 @@ $app->delete('/tags/{tagId}/link/{id}', \Tag\controllers\TagController::class . ...@@ -461,6 +461,7 @@ $app->delete('/tags/{tagId}/link/{id}', \Tag\controllers\TagController::class .
$app->get('/templates', \Template\controllers\TemplateController::class . ':get'); $app->get('/templates', \Template\controllers\TemplateController::class . ':get');
$app->post('/templates', \Template\controllers\TemplateController::class . ':create'); $app->post('/templates', \Template\controllers\TemplateController::class . ':create');
$app->get('/templates/{id}/details', \Template\controllers\TemplateController::class . ':getDetailledById'); $app->get('/templates/{id}/details', \Template\controllers\TemplateController::class . ':getDetailledById');
$app->get('/templates/{id}/content', \Template\controllers\TemplateController::class . ':getContentById');
$app->put('/templates/{id}', \Template\controllers\TemplateController::class . ':update'); $app->put('/templates/{id}', \Template\controllers\TemplateController::class . ':update');
$app->delete('/templates/{id}', \Template\controllers\TemplateController::class . ':delete'); $app->delete('/templates/{id}', \Template\controllers\TemplateController::class . ':delete');
$app->post('/templates/{id}/duplicate', \Template\controllers\TemplateController::class . ':duplicate'); $app->post('/templates/{id}/duplicate', \Template\controllers\TemplateController::class . ':duplicate');
......
...@@ -83,6 +83,9 @@ class OnlyOfficeController ...@@ -83,6 +83,9 @@ class OnlyOfficeController
} }
$path = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $template['template_path']) . $template['template_file_name']; $path = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $template['template_path']) . $template['template_file_name'];
if (!is_file($path)) {
return $response->withStatus(400)->withJson(['errors' => 'Template does not exist on docserver']);
}
$fileContent = file_get_contents($path); $fileContent = file_get_contents($path);
} elseif ($body['objectType'] == 'resourceCreation' || $body['objectType'] == 'attachmentCreation') { } elseif ($body['objectType'] == 'resourceCreation' || $body['objectType'] == 'attachmentCreation') {
$docserver = DocserverModel::getCurrentDocserver(['typeId' => 'TEMPLATES', 'collId' => 'templates', 'select' => ['path_template']]); $docserver = DocserverModel::getCurrentDocserver(['typeId' => 'TEMPLATES', 'collId' => 'templates', 'select' => ['path_template']]);
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
namespace Template\controllers; namespace Template\controllers;
use ContentManagement\controllers\MergeController; use ContentManagement\controllers\MergeController;
use Convert\controllers\ConvertPdfController;
use Docserver\controllers\DocserverController; use Docserver\controllers\DocserverController;
use Docserver\models\DocserverModel; use Docserver\models\DocserverModel;
use Group\controllers\PrivilegeController; use Group\controllers\PrivilegeController;
...@@ -279,6 +280,37 @@ class TemplateController ...@@ -279,6 +280,37 @@ class TemplateController
return $response->withJson(['success' => 'success']); return $response->withJson(['success' => 'success']);
} }
public function getContentById(Request $request, Response $response, array $aArgs)
{
if (!PrivilegeController::hasPrivilege(['privilegeId' => 'admin_templates', 'userId' => $GLOBALS['id']])) {
return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
}
$template = TemplateModel::getById(['id' => $aArgs['id']]);
if (empty($template)) {
return $response->withStatus(400)->withJson(['errors' => 'Template does not exist']);
}
if (empty($template['template_path'])) {
return $response->withStatus(400)->withJson(['errors' => 'Template has no office content']);
}
$docserver = DocserverModel::getCurrentDocserver(['typeId' => 'TEMPLATES', 'collId' => 'templates', 'select' => ['path_template']]);
$pathToTemplate = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $template['template_path']) . $template['template_file_name'];
$extension = pathinfo($pathToTemplate, PATHINFO_EXTENSION);
if (!ConvertPdfController::canConvert(['extension' => $extension])) {
return $response->withStatus(400)->withJson(['errors' => 'Template can not be converted']);
}
$resource = file_get_contents($pathToTemplate);
$convertion = ConvertPdfController::convertFromEncodedResource(['encodedResource' => base64_encode($resource), 'extension' => $extension]);
if (!empty($convertion['errors'])) {
return $response->withStatus(400)->withJson(['errors' => 'Template convertion failed : ' . $convertion['errors']]);
}
return $response->withJson(['encodedDocument' => $convertion['encodedResource']]);
}
public function duplicate(Request $request, Response $response, array $aArgs) public function duplicate(Request $request, Response $response, array $aArgs)
{ {
if (!PrivilegeController::hasPrivilege(['privilegeId' => 'admin_templates', 'userId' => $GLOBALS['id']])) { if (!PrivilegeController::hasPrivilege(['privilegeId' => 'admin_templates', 'userId' => $GLOBALS['id']])) {
......
...@@ -403,38 +403,19 @@ class TemplateControllerTest extends TestCase ...@@ -403,38 +403,19 @@ class TemplateControllerTest extends TestCase
$this->assertSame('Template does not exist', $responseBody->errors); $this->assertSame('Template does not exist', $responseBody->errors);
$aArgs = [
'template_label' => 'TEST TEMPLATE AR OFFICE',
'template_comment' => 'DESCRIPTION OF THIS TEMPLATE',
'template_target' => 'OFFICE',
'template_attachment_type' => 'ARsimple',
'template_type' => 'OFFICE',
'template_datasource' => 'letterbox_attachment',
'entities' => ['TST', 'BAD'],
'uploadedFile' => 'missing base64 + name'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $templates->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id2]);
$this->assertSame(400, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame("Uploaded file is missing", $responseBody['errors']);
$fileContent = file_get_contents('test/unitTests/samples/test.txt'); $fileContent = file_get_contents('test/unitTests/samples/test.txt');
$encodedFile = base64_encode($fileContent); $encodedFile = base64_encode($fileContent);
$aArgs = [ $aArgs = [
'template_label' => 'TEST TEMPLATE AR OFFICE', 'label' => 'TEST TEMPLATE AR OFFICE',
'template_comment' => 'DESCRIPTION OF THIS TEMPLATE', 'description' => 'DESCRIPTION OF THIS TEMPLATE',
'template_target' => 'OFFICE', 'target' => 'OFFICE',
'template_attachment_type' => 'ARsimple', 'template_attachment_type' => 'ARsimple',
'template_type' => 'OFFICE', 'type' => 'OFFICE',
'template_datasource' => 'letterbox_attachment', 'entities' => ['TST', 'BAD'],
'entities' => ['TST', 'BAD'], 'file' => [
'uploadedFile' => [ 'content' => $encodedFile,
'name' => 'test_template.txt', 'format' => 'txt'
'base64' => $encodedFile
] ]
]; ];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment