]> source.dussan.org Git - nextcloud-server.git/commitdiff
refactor AutoSubmittedValue to Headers\AutoSubmitted and adding
authorBennet Becker <dev@bennet.cc>
Tue, 3 Jan 2023 14:03:40 +0000 (15:03 +0100)
committerBennet Becker <dev@bennet.cc>
Tue, 3 Jan 2023 14:15:35 +0000 (15:15 +0100)
header name to constants

Signed-off-by: Bennet Becker <dev@bennet.cc>
lib/private/Mail/Message.php
lib/public/Mail/AutoSubmittedValue.php [deleted file]
lib/public/Mail/Headers/AutoSubmitted.php [new file with mode: 0644]
lib/public/Mail/IMessage.php
tests/lib/Mail/MessageTest.php

index cf69d9cb3effc39628020032cec2450cffff4305..3313b39e2e2beebfc16471bcdfb8baf86ddedcf0 100644 (file)
@@ -31,7 +31,7 @@ declare(strict_types=1);
  */
 namespace OC\Mail;
 
-use OCP\Mail\AutoSubmittedValue;
+use OCP\Mail\Headers\AutoSubmitted;
 use OCP\Mail\IAttachment;
 use OCP\Mail\IEMailTemplate;
 use OCP\Mail\IMessage;
@@ -307,22 +307,22 @@ class Message implements IMessage {
         * Add the Auto-Submitted header to the email, preventing most automated
         * responses to automated messages.
         *
-        * @param AutoSubmittedValue::* $value (one of AutoSubmittedValue::NO, AutoSubmittedValue::AUTO_GENERATED, AutoSubmittedValue::AUTO_REPLIED)
+        * @param AutoSubmitted::VALUE_* $value (one of AutoSubmitted::VALUE_NO, AutoSubmitted::VALUE_AUTO_GENERATED, AutoSubmitted::VALUE_AUTO_REPLIED)
         * @return $this
         */
        public function setAutoSubmitted(string $value): IMessage {
                $headers = $this->swiftMessage->getHeaders();
 
-               if ($headers->has('Auto-Submitted')) {
+               if ($headers->has(AutoSubmitted::HEADER)) {
                        // if the header already exsists, remove it.
                        // the value can be modified with some implementations
                        // of the interface \Swift_Mime_Header, however the
                        // interface doesn't, and this makes the static-code
                        // analysis unhappy.
-                       $headers->remove('Auto-Submitted');
+                       $headers->remove(AutoSubmitted::HEADER);
                }
 
-               $headers->addTextHeader('Auto-Submitted', $value);
+               $headers->addTextHeader(AutoSubmitted::HEADER, $value);
 
                return $this;
        }
@@ -336,7 +336,7 @@ class Message implements IMessage {
        public function getAutoSubmitted(): string {
                $headers = $this->swiftMessage->getHeaders();
 
-               return $headers->has('Auto-Submitted') ?
-                       $headers->get('Auto-Submitted')->toString() : AutoSubmittedValue::NO;
+               return $headers->has(AutoSubmitted::HEADER) ?
+                       $headers->get(AutoSubmitted::HEADER)->toString() : AutoSubmitted::VALUE_NO;
        }
 }
diff --git a/lib/public/Mail/AutoSubmittedValue.php b/lib/public/Mail/AutoSubmittedValue.php
deleted file mode 100644 (file)
index 3cf669d..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/**
- * @copyright Copyright (c) 2022 Bennet Becker <dev@bennet.cc>
- *
- * @author Bennet Becker <dev@bennet.cc>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCP\Mail;
-
-/**
- * Keyword values for the Auto-Submitted email header, as per RFC 3834.
- *
- * The value "auto-notified" as per RFC 5436 is deliberately omitted as it is
- * meant of notification of the sieve system.
- *
- * @link https://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml
- *
- * @since 26.0.0
- */
-final class AutoSubmittedValue {
-       /**
-        * Indicates that a message was NOT automatically generated, but was
-        * created by a human (or following human interaction). It is the equivalent
-        * to the absence of an Auto-Submitted header altogether.
-        *
-        * @var string
-        * @since 26.0.0
-        */
-       public const NO = 'no';
-
-       /**
-        * Indicates that a message was generated by an automatic process, and is
-        * not a direct response to another message
-        *
-        * @var string
-        * @since 26.0.0
-        */
-       public const AUTO_GENERATED = 'auto-generated';
-
-       /**
-        * Indicates that a message was automatically generated as a direct response
-        * to another message.
-        *
-        * @var string
-        * @since 26.0.0
-        */
-       public const AUTO_REPLIED = 'auto-replied';
-}
diff --git a/lib/public/Mail/Headers/AutoSubmitted.php b/lib/public/Mail/Headers/AutoSubmitted.php
new file mode 100644 (file)
index 0000000..73bd35e
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2022 Bennet Becker <dev@bennet.cc>
+ *
+ * @author Bennet Becker <dev@bennet.cc>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+namespace OCP\Mail\Headers;
+
+/**
+ * Keyword values for the Auto-Submitted email header, as per RFC 3834.
+ *
+ * The value "auto-notified" as per RFC 5436 is deliberately omitted as it is
+ * meant of notification of the sieve system.
+ *
+ * @link https://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml
+ *
+ * @since 26.0.0
+ */
+final class AutoSubmitted {
+
+       /**
+        * Name of the Header as used in the final message later
+        * 
+        * @var string
+        * @since 26.0.0
+        */
+       public const HEADER = 'Auto-Submitted';
+
+       /**
+        * Indicates that a message was NOT automatically generated, but was
+        * created by a human (or following human interaction). It is the equivalent
+        * to the absence of an Auto-Submitted header altogether.
+        *
+        * @var string
+        * @since 26.0.0
+        */
+       public const VALUE_NO = 'no';
+
+       /**
+        * Indicates that a message was generated by an automatic process, and is
+        * not a direct response to another message
+        *
+        * @var string
+        * @since 26.0.0
+        */
+       public const VALUE_AUTO_GENERATED = 'auto-generated';
+
+       /**
+        * Indicates that a message was automatically generated as a direct response
+        * to another message.
+        *
+        * @var string
+        * @since 26.0.0
+        */
+       public const VALUE_AUTO_REPLIED = 'auto-replied';
+}
index 352c47022fd59fee16f5a9204468b268382e3788..c53ab12bbb7c18dd08b23012d7150fb8285f3b2d 100644 (file)
@@ -98,7 +98,7 @@ interface IMessage {
         * Add the Auto-Submitted header to the email, preventing most automated
         * responses to automated messages.
         *
-        * @param AutoSubmittedValue::* $value (one of AutoSubmittedValue::NO, AutoSubmittedValue::AUTO_GENERATED, AutoSubmittedValue::AUTO_REPLIED)
+        * @param AutoSubmitted::VALUE_* $value (one of AutoSubmitted::VALUE_NO, AutoSubmitted::VALUE_AUTO_GENERATED, AutoSubmitted::VALUE_AUTO_REPLIED)
         * @return IMessage
         * @since 26.0.0
         */
index cf9a48e29f2ef1a87d4fd58959a579372574e0bc..b97240d13366db3e0bf1e9322c5b096377191dfa 100644 (file)
@@ -9,7 +9,7 @@
 namespace Test\Mail;
 
 use OC\Mail\Message;
-use OCP\Mail\AutoSubmittedValue;
+use OCP\Mail\Headers\AutoSubmitted;
 use OCP\Mail\IEMailTemplate;
 use Swift_Message;
 use Test\TestCase;
@@ -285,10 +285,10 @@ class MessageTest extends TestCase {
                        ->method('remove');
                $swiftMimeSimpleHeaderSet->expects($this->once())
                        ->method('addTextHeader')
-                       ->with('Auto-Submitted', AutoSubmittedValue::AUTO_GENERATED);
+                       ->with('Auto-Submitted', AutoSubmitted::VALUE_AUTO_GENERATED);
 
                $message = new Message($swiftMessage, false);
-               $message->setAutoSubmitted(AutoSubmittedValue::AUTO_GENERATED);
+               $message->setAutoSubmitted(AutoSubmitted::VALUE_AUTO_GENERATED);
        }
 
        public function testSetAutoSubmitted2() {
@@ -313,10 +313,10 @@ class MessageTest extends TestCase {
                        ->with('Auto-Submitted');
                $swiftMimeSimpleHeaderSet->expects($this->once())
                        ->method('addTextHeader')
-                       ->with('Auto-Submitted', AutoSubmittedValue::AUTO_GENERATED);
+                       ->with('Auto-Submitted', AutoSubmitted::VALUE_AUTO_GENERATED);
 
                $message = new Message($swiftMessage, false);
-               $message->setAutoSubmitted(AutoSubmittedValue::AUTO_GENERATED);
+               $message->setAutoSubmitted(AutoSubmitted::VALUE_AUTO_GENERATED);
        }
 
        public function testGetAutoSubmitted1() {
@@ -357,7 +357,7 @@ class MessageTest extends TestCase {
 
 
                $swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
-               $swiftMimeHeader->method('toString')->willReturn(AutoSubmittedValue::AUTO_GENERATED);
+               $swiftMimeHeader->method('toString')->willReturn(AutoSubmitted::VALUE_AUTO_GENERATED);
 
                $swiftMimeSimpleHeaderSet->expects($this->once())
                        ->method('has')
@@ -368,6 +368,6 @@ class MessageTest extends TestCase {
                        ->willReturn($swiftMimeHeader);
 
                $message = new Message($swiftMessage, false);
-               $this->assertSame(AutoSubmittedValue::AUTO_GENERATED, $message->getAutoSubmitted());
+               $this->assertSame(AutoSubmitted::VALUE_AUTO_GENERATED, $message->getAutoSubmitted());
        }
 }