Add assets url factory method to form template

[MAILPOET-3076]
This commit is contained in:
Rostislav Wolny
2020-09-03 10:50:12 +02:00
committed by Veljko V
parent 0f0472975d
commit 01057c7ff1
3 changed files with 29 additions and 2 deletions

View File

@@ -25,11 +25,15 @@ use MailPoet\Form\Templates\Templates\Template6Popup;
use MailPoet\Form\Templates\Templates\Template6SlideIn;
use MailPoet\Form\Templates\Templates\Template6Widget;
use MailPoet\UnexpectedValueException;
use MailPoet\Util\CdnAssetUrl;
class TemplateRepository {
const INITIAL_FORM_TEMPLATE = InitialForm::ID;
const DEFAULT_FORM_TEMPLATE = DefaultForm::ID;
/** @var CdnAssetUrl */
private $cdnAssetUrl;
private $templates = [
InitialForm::ID => InitialForm::class,
DefaultForm::ID => DefaultForm::class,
@@ -55,13 +59,17 @@ class TemplateRepository {
Template10Widget::ID => Template10Widget::class,
];
public function __construct(CdnAssetUrl $cdnAssetUrl) {
$this->cdnAssetUrl = $cdnAssetUrl;
}
public function getFormTemplate(string $templateId): FormTemplate {
if (!isset($this->templates[$templateId])) {
throw UnexpectedValueException::create()
->withErrors(["Template with id $templateId doesn't exist."]);
}
/** @var FormTemplate $template */
$template = new $this->templates[$templateId]();
$template = new $this->templates[$templateId]($this->cdnAssetUrl);
return $template;
}