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
|
||||
$this->downloadEFlexSignedDocuments($data, $eflex, $projectDir);
|
||||
$tmpFiles = $this->downloadEFlexSignedDocuments($data, $eflex, $projectDir);
|
||||
$eflex->setState(\App\Entity\EFlex::STATE_PENDING_SETUP);
|
||||
$em->flush();
|
||||
|
||||
foreach ($tmpFiles as $f) {
|
||||
@unlink($f);
|
||||
}
|
||||
|
||||
// Preparer Stripe Customer
|
||||
$customer = $eflex->getCustomer();
|
||||
if ('' !== $stripeSk) {
|
||||
@@ -363,8 +367,13 @@ class WebhookDocuSealController extends AbstractController
|
||||
*
|
||||
* @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'] ?? [];
|
||||
$pdfUrl = $documents[0]['url'] ?? null;
|
||||
if (null !== $pdfUrl) {
|
||||
@@ -373,7 +382,7 @@ class WebhookDocuSealController extends AbstractController
|
||||
$tmpSigned = tempnam(sys_get_temp_dir(), 'eflex_signed_').'.pdf';
|
||||
file_put_contents($tmpSigned, $content);
|
||||
$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';
|
||||
file_put_contents($tmpAudit, $auditContent);
|
||||
$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