add redirection to wopi after doc generation

This commit is contained in:
2021-08-19 23:30:45 +02:00
parent 8295788d7f
commit 06abefd576
4 changed files with 30 additions and 25 deletions

View File

@@ -3,6 +3,8 @@
namespace Chill\DocGeneratorBundle\Controller;
use Chill\DocGeneratorBundle\Repository\DocGeneratorTemplateRepository;
use Chill\DocStoreBundle\Entity\StoredObject;
use GuzzleHttp\Exception\TransferException;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
@@ -54,7 +56,7 @@ class DocGeneratorTemplateController extends AbstractController
* )
*/
public function generateDocFromTemplateAction(
TempUrlOpenstackGenerator $tempUrlGenerator,
\ChampsLibres\AsyncUploaderBundle\TempUrl\TempUrlGeneratorInterface $tempUrlGenerator,
DocGeneratorTemplate $template, string $entityClassName, int $entityId): Response
{
$getUrlGen = $tempUrlGenerator->generate(
@@ -84,7 +86,7 @@ class DocGeneratorTemplateController extends AbstractController
$fileContent = fopen($tmpfname2, 'r'); // the generated file content
$genDocName = 'doc_'.sprintf( '%010d', rand()).'.docx';
$genDocName = 'doc_' . sprintf('%010d', rand()) . '.docx';
$getUrlGen = $tempUrlGenerator->generate(
'PUT',
@@ -94,25 +96,28 @@ class DocGeneratorTemplateController extends AbstractController
$client = new Client();
$putResponse = $client->request('PUT', $getUrlGen->{'url'}, [
'body' => $fileContent
]);
try {
$putResponse = $client->request('PUT', $getUrlGen->{'url'}, [
'body' => $fileContent
]);
if ($putResponse->getStatusCode() == 201) {
return new JsonResponse(
array(
"msg" => "Document créé",
"id" => $genDocName,
"response" => array(
"reasonPhrase" => $putResponse->getReasonPhrase(),
"statusCode" => $putResponse->getStatusCode())));
if ($putResponse->getStatusCode() == 201) {
$storedObject = new StoredObject();
$storedObject
// currently, only docx is supported
->setType('application/vnd.openxmlformats-officedocument.wordprocessingml.document')
->setFilename($genDocName);
$em = $this->getDoctrine()->getManager();
$em->persist($storedObject);
$em->flush();
return $this->redirectToRoute('chill_wopi_file_edit', [
'fileId' => $genDocName
]);
}
} catch (TransferException $e) {
throw $e;
}
return new JsonResponse(
array(
"msg" => "PBM",
"response" => array(
"reasonPhrase" => $putResponse->getReasonPhrase(),
"statusCode" => $putResponse->getStatusCode())));
}
}