Skip to content
Snippets Groups Projects
Commit 6290b817 authored by Piotr Potrebka's avatar Piotr Potrebka
Browse files

feat: email abstract

parent de65272a
No related branches found
No related tags found
1 merge request!2Devel
Pipeline #150949 passed with stages
in 55 seconds
...@@ -2,20 +2,25 @@ ...@@ -2,20 +2,25 @@
namespace WPDesk\Library\WPEmail\Abstracts; namespace WPDesk\Library\WPEmail\Abstracts;
use Exception;
abstract class EmailAbstract implements EmailInterface { abstract class EmailAbstract implements EmailInterface {
/** /**
* @var array * @var array
*/ */
protected $recipients = []; protected $recipients = [];
/** /**
* @var array * @var array
*/ */
protected $placeholders = []; protected $placeholders = [];
/** /**
* @var string * @var string
*/ */
protected $subject = ''; protected $subject = '';
/** /**
* @var string * @var string
*/ */
...@@ -48,6 +53,19 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -48,6 +53,19 @@ abstract class EmailAbstract implements EmailInterface {
*/ */
abstract public function get_id(): string; abstract public function get_id(): string;
/**
* Set placeholders.
*
* @param array $placeholders
*
* @return self
*/
public function set_placeholders( array $placeholders = [] ): self {
$this->placeholders = array_merge( $this->placeholders, $placeholders );
return $this;
}
/** /**
* Get defined placeholders. * Get defined placeholders.
* *
...@@ -57,20 +75,46 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -57,20 +75,46 @@ abstract class EmailAbstract implements EmailInterface {
return $this->placeholders; return $this->placeholders;
} }
/**
* Get email subject.
*
* @param string $subject
*
* @return self
*/
public function set_subject( string $subject ): self {
$this->subject = $subject;
return $this;
}
/** /**
* Get email subject. * Get email subject.
* *
* @return string * @return string
* @throws \Exception * @throws Exception
*/ */
public function get_subject(): string { public function get_subject(): string {
if ( ! $this->subject ) { if ( ! $this->subject ) {
throw new \Exception( 'Empty email subject' ); throw new Exception( 'Empty email subject' );
} }
return $this->subject; return $this->subject;
} }
/**
* Set email heading.
*
* @param string $heading
*
* @return self
*/
public function set_heading( string $heading ): self {
$this->heading = $heading;
return $this;
}
/** /**
* Get email heading. * Get email heading.
* *
...@@ -80,6 +124,19 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -80,6 +124,19 @@ abstract class EmailAbstract implements EmailInterface {
return $this->heading; return $this->heading;
} }
/**
* Get valid recipients.
*
* @param array $recipients
*
* @return self
*/
public function set_recipients( array $recipients = [] ): self {
$this->recipients = $recipients;
return $this;
}
/** /**
* Get valid recipients. * Get valid recipients.
* *
...@@ -89,6 +146,19 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -89,6 +146,19 @@ abstract class EmailAbstract implements EmailInterface {
return $this->recipients; return $this->recipients;
} }
/**
* Get email headers.
*
* @param array $headers
*
* @return self
*/
public function set_headers( array $headers = [] ): self {
$this->headers = $headers;
return $this;
}
/** /**
* Get email headers. * Get email headers.
* *
...@@ -98,6 +168,19 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -98,6 +168,19 @@ abstract class EmailAbstract implements EmailInterface {
return $this->headers; return $this->headers;
} }
/**
* Set attachments.
*
* @param array $attachments
*
* @return self
*/
public function set_attachments( array $attachments ): self {
$this->attachments = $attachments;
return $this;
}
/** /**
* Get email attachments. * Get email attachments.
* *
...@@ -107,6 +190,19 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -107,6 +190,19 @@ abstract class EmailAbstract implements EmailInterface {
return $this->attachments; return $this->attachments;
} }
/**
* Set email type.
*
* @param string $type
*
* @return self
*/
public function set_type( string $type = 'text/html' ): self {
$this->type = $type;
return $this;
}
/** /**
* Get email type. * Get email type.
* *
...@@ -116,14 +212,28 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -116,14 +212,28 @@ abstract class EmailAbstract implements EmailInterface {
return $this->type; return $this->type;
} }
/**
* Get email content.
*
* @param string $content
*
* @return self
*/
public function set_content( string $content ): self {
$this->content = $content;
return $this;
}
/** /**
* Get email content. * Get email content.
* *
* @return string * @return string
* @throws Exception
*/ */
public function get_content(): string { public function get_content(): string {
if ( ! $this->content ) { if ( ! $this->content ) {
throw new \Exception( 'Empty email subject' ); throw new Exception( 'Empty email content' );
} }
return ''; return '';
...@@ -136,4 +246,5 @@ abstract class EmailAbstract implements EmailInterface { ...@@ -136,4 +246,5 @@ abstract class EmailAbstract implements EmailInterface {
return ''; return '';
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment