2 Commits

Author SHA1 Message Date
Sebastian dbd7b4711b chore(deps): update dependency guzzlehttp/guzzle to v7.15.3
Build Test / test (pull_request) Successful in 58s
JS Unit Tests / test (pull_request) Successful in 53s
PHP Integration Tests / Integration Tests (pull_request) Failing after 1m16s
PHP Unit Tests / test (pull_request) Successful in 1m47s
2026-08-06 03:02:09 +00:00
Sebastian b60341f62d fix: message sending
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-07-30 21:03:59 -04:00
2 changed files with 42 additions and 46 deletions
Generated
+14 -14
View File
@@ -8,21 +8,21 @@
"packages": [ "packages": [
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "7.15.1", "version": "7.15.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f" "reference": "ae311b8f045ea93ce7b1c9cdb7cec06c53f944bc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ae311b8f045ea93ce7b1c9cdb7cec06c53f944bc",
"reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", "reference": "ae311b8f045ea93ce7b1c9cdb7cec06c53f944bc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"guzzlehttp/promises": "^2.5.1", "guzzlehttp/promises": "^2.5.2",
"guzzlehttp/psr7": "^2.13", "guzzlehttp/psr7": "^2.13",
"php": "^7.2.5 || ^8.0", "php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0", "psr/http-client": "^1.0",
@@ -116,7 +116,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/guzzle/issues", "issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.15.1" "source": "https://github.com/guzzle/guzzle/tree/7.15.3"
}, },
"funding": [ "funding": [
{ {
@@ -132,20 +132,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-07-18T11:23:11+00:00" "time": "2026-08-05T19:48:21+00:00"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "2.5.1", "version": "2.5.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29" "reference": "2823687acff28b2dbe67b2508a6b300e2c3fa4ce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/9ad1e4fc607446a055b95870c7f668e93b5cff29", "url": "https://api.github.com/repos/guzzle/promises/zipball/2823687acff28b2dbe67b2508a6b300e2c3fa4ce",
"reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29", "reference": "2823687acff28b2dbe67b2508a6b300e2c3fa4ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -200,7 +200,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/promises/issues", "issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.5.1" "source": "https://github.com/guzzle/promises/tree/2.5.2"
}, },
"funding": [ "funding": [
{ {
@@ -216,7 +216,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-07-08T15:48:39+00:00" "time": "2026-08-05T19:30:54+00:00"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
@@ -2556,5 +2556,5 @@
"platform-overrides": { "platform-overrides": {
"php": "8.3" "php": "8.3"
}, },
"plugin-api-version": "2.6.0" "plugin-api-version": "2.9.0"
} }
+28 -32
View File
@@ -912,21 +912,29 @@ class RemoteMailService {
* *
* @since Release 2.0.0 * @since Release 2.0.0
*/ */
public function entitySubmitFresh(string $identityId, array $message, string $preSendTarget, string $postSentTarget): string { public function entitySubmitFresh(string $identityId, array $data, string $preSendTarget, string $postSentTarget): string {
$mail = new MailParametersRequest(); $message = new MailParametersRequest();
$mail->parametersRaw($message); $message->parametersRaw($data);
$messageCreateId = 'm_' . uniqid(); $messageId = 'm_' . uniqid();
$submissionCreateId = 's_' . uniqid(); $submissionId = 's_' . uniqid();
$r0 = new MailSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel); $r0 = new MailSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel);
$createdMessage = $r0->create($messageCreateId, $mail); $m0 = $r0->create($messageId, $message);
$createdMessage->in($preSendTarget); $m0->in($preSendTarget);
$m0->draft(true);
$m0->seen(true);
$r1 = new MailSubmissionSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel); $r1 = new MailSubmissionSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel);
$submission = $r1->create($submissionCreateId); $r1->completionUpdate('#' . $messageId, [
$submission->identity($identityId); 'mailboxIds/' . $postSentTarget => true,
$submission->message('#' . $messageCreateId); 'mailboxIds/' . $preSendTarget => null,
'keywords/$draft' => null,
]);
$s0 = $r1->create($submissionId);
$s0->identity($identityId);
$s0->message('#' . $messageId);
$bundle = $this->dataStore->perform([$r0, $r1]); $bundle = $this->dataStore->perform([$r0, $r1]);
$messageResponse = $bundle->response(0); $messageResponse = $bundle->response(0);
@@ -934,7 +942,7 @@ class RemoteMailService {
throw new Exception($messageResponse->type() . ': ' . $messageResponse->description(), 1); throw new Exception($messageResponse->type() . ': ' . $messageResponse->description(), 1);
} }
if (method_exists($messageResponse, 'createFailure')) { if (method_exists($messageResponse, 'createFailure')) {
$failure = $messageResponse->createFailure($messageCreateId); $failure = $messageResponse->createFailure($messageId);
if (is_array($failure)) { if (is_array($failure)) {
$type = $failure['type'] ?? 'unknownError'; $type = $failure['type'] ?? 'unknownError';
$description = $failure['description'] ?? 'Email creation failed'; $description = $failure['description'] ?? 'Email creation failed';
@@ -950,7 +958,7 @@ class RemoteMailService {
throw new Exception($response->type() . ': ' . $response->description(), 1); throw new Exception($response->type() . ': ' . $response->description(), 1);
} }
return $this->extractSubmissionIdentifier($response, $submissionCreateId); return $this->extractSubmissionIdentifier($response, $submissionId);
} }
/** /**
@@ -978,18 +986,18 @@ class RemoteMailService {
$requests = []; $requests = [];
if ($patch !== null && $patch !== []) { if ($patch !== null && $patch !== []) {
$draftMutation = new MailParametersRequest(); $m0 = new MailParametersRequest();
$draftMutation->parametersRaw($patch); $m0->parametersRaw($patch);
$r0 = new MailSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel); $r0 = new MailSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel);
$r0->update($draftId, $draftMutation); $r0->update($draftId, $m0);
$requests[] = $r0; $requests[] = $r0;
} }
$submissionCreateId = 's_' . uniqid(); $submissionId = 's_' . uniqid();
$r1 = new MailSubmissionSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel); $r1 = new MailSubmissionSet($this->dataAccount, null, $this->resourceNamespace, $this->resourceEntityLabel);
$submission = $r1->create($submissionCreateId); $s0 = $r1->create($submissionId);
$submission->identity($identityId); $s0->identity($identityId);
$submission->message($draftId); $s0->message($draftId);
$requests[] = $r1; $requests[] = $r1;
$bundle = $this->dataStore->perform($requests); $bundle = $this->dataStore->perform($requests);
@@ -1002,19 +1010,7 @@ class RemoteMailService {
throw new Exception($response->type() . ': ' . $response->description(), 1); throw new Exception($response->type() . ': ' . $response->description(), 1);
} }
return $this->extractSubmissionIdentifier($response, $submissionCreateId); return $this->extractSubmissionIdentifier($response, $submissionId);
}
private function collectionByRole(string $role): ?string {
$filter = $this->collectionListFilter();
$filter->condition('role', $role);
$collections = $this->collectionList(null, $filter, null);
if ($collections === []) {
return null;
}
return (string)array_key_first($collections);
} }
private function extractSubmissionIdentifier(object $response, string $createId): string { private function extractSubmissionIdentifier(object $response, string $createId): string {