mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-21 15:13:50 +00:00
add redirection to wopi after doc generation
This commit is contained in:
@@ -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())));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user