fix: unlink fichiers temporaires apres flush dans webhook EFlex DocuSeal
Le @unlink() etait appele avant $em->flush(), Vich essayait de lire un fichier deja supprime. Les fichiers temporaires sont maintenant supprimes apres le flush. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -270,10 +270,14 @@ class WebhookDocuSealController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Telecharger le PDF signe et l'audit
|
// Telecharger le PDF signe et l'audit
|
||||||
$this->downloadEFlexSignedDocuments($data, $eflex, $projectDir);
|
$tmpFiles = $this->downloadEFlexSignedDocuments($data, $eflex, $projectDir);
|
||||||
$eflex->setState(\App\Entity\EFlex::STATE_PENDING_SETUP);
|
$eflex->setState(\App\Entity\EFlex::STATE_PENDING_SETUP);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
|
foreach ($tmpFiles as $f) {
|
||||||
|
@unlink($f);
|
||||||
|
}
|
||||||
|
|
||||||
// Preparer Stripe Customer
|
// Preparer Stripe Customer
|
||||||
$customer = $eflex->getCustomer();
|
$customer = $eflex->getCustomer();
|
||||||
if ('' !== $stripeSk) {
|
if ('' !== $stripeSk) {
|
||||||
@@ -363,8 +367,13 @@ class WebhookDocuSealController extends AbstractController
|
|||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
private function downloadEFlexSignedDocuments(array $data, \App\Entity\EFlex $eflex, string $projectDir): void
|
/**
|
||||||
|
* @return list<string> fichiers temporaires a supprimer apres flush
|
||||||
|
*/
|
||||||
|
private function downloadEFlexSignedDocuments(array $data, \App\Entity\EFlex $eflex, string $projectDir): array
|
||||||
{
|
{
|
||||||
|
$tmpFiles = [];
|
||||||
|
|
||||||
$documents = $data['documents'] ?? [];
|
$documents = $data['documents'] ?? [];
|
||||||
$pdfUrl = $documents[0]['url'] ?? null;
|
$pdfUrl = $documents[0]['url'] ?? null;
|
||||||
if (null !== $pdfUrl) {
|
if (null !== $pdfUrl) {
|
||||||
@@ -373,7 +382,7 @@ class WebhookDocuSealController extends AbstractController
|
|||||||
$tmpSigned = tempnam(sys_get_temp_dir(), 'eflex_signed_').'.pdf';
|
$tmpSigned = tempnam(sys_get_temp_dir(), 'eflex_signed_').'.pdf';
|
||||||
file_put_contents($tmpSigned, $content);
|
file_put_contents($tmpSigned, $content);
|
||||||
$eflex->setPdfSignedFile(new \Symfony\Component\HttpFoundation\File\UploadedFile($tmpSigned, 'eflex-signe-'.$eflex->getReference().'.pdf', 'application/pdf', null, true));
|
$eflex->setPdfSignedFile(new \Symfony\Component\HttpFoundation\File\UploadedFile($tmpSigned, 'eflex-signe-'.$eflex->getReference().'.pdf', 'application/pdf', null, true));
|
||||||
@unlink($tmpSigned);
|
$tmpFiles[] = $tmpSigned;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -384,9 +393,11 @@ class WebhookDocuSealController extends AbstractController
|
|||||||
$tmpAudit = tempnam(sys_get_temp_dir(), 'eflex_audit_').'.pdf';
|
$tmpAudit = tempnam(sys_get_temp_dir(), 'eflex_audit_').'.pdf';
|
||||||
file_put_contents($tmpAudit, $auditContent);
|
file_put_contents($tmpAudit, $auditContent);
|
||||||
$eflex->setPdfAuditFile(new \Symfony\Component\HttpFoundation\File\UploadedFile($tmpAudit, 'audit-'.$eflex->getReference().'.pdf', 'application/pdf', null, true));
|
$eflex->setPdfAuditFile(new \Symfony\Component\HttpFoundation\File\UploadedFile($tmpAudit, 'audit-'.$eflex->getReference().'.pdf', 'application/pdf', null, true));
|
||||||
@unlink($tmpAudit);
|
$tmpFiles[] = $tmpAudit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $tmpFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user