Lines 0.00% 0 / 31
Functions and Methods 0.00% 0 / 1
Classes and Traits 0.00% 0 / 1
Name Lines Functions and Methods CRAP Classes and Traits
MailTemplatePreviewMail 0.00% 0 / 31 0.00% 0 / 1 12 0.00% 0 / 1
 readResponse 0.00% 0 / 31 0.00% 0 / 1 12
1<?php
2
3 namespace BO\Zmsadmin\Helper;
4
5 use BO\Zmsadmin\BaseController;
6 use BO\Zmsadmin\Helper\MailTemplateArrayProvider;
7 use BO\Zmsentities\Config;
8 use BO\Zmsentities\Mail;
9 use BO\Zmsentities\Process;
10 use BO\Zmsentities\Request;
11
12class MailTemplatePreviewMail extends BaseController
13{
14    /**
15     * @return \Psr\Http\Message\ResponseInterface
16     */
17    #[\Override]
18    public function readResponse(
19        \Psr\Http\Message\RequestInterface $request,
20        \Psr\Http\Message\ResponseInterface $response,
21        array $args
22    ) {
23
24        $mailStatus = $args['mailStatus'];
25        $validator = $request->getAttribute('validator');
26        $input = $validator->getInput()->isJson()->getValue();
27
28        $mainProcessExample = ((new Process())->getExample());
29        $mainProcessExample->id = 987654;
30        $dateTime = new \DateTimeImmutable("2015-10-23 08:00:00", new \DateTimeZone('Europe/Berlin'));
31        $mainProcessExample->getFirstAppointment()->setDateTime($dateTime);
32        $mainProcessExample->requests[] = (new Request())->getExample();
33
34        $templates = array();
35
36        foreach ($input['templates'] as $template) {
37            $templates[$template['templateName']] = $template['templateContent'];
38        };
39
40        $templateProvider = new MailTemplateArrayProvider();
41        $templateProvider->setTemplates($templates);
42
43        $config = new Config();
44
45        try {
46            $mail = (new Mail())
47            ->setTemplateProvider($templateProvider)
48            ->toResolvedEntity($mainProcessExample, $config, $mailStatus);
49        } catch (\Exception $e) {
50            return \BO\Slim\Render::withJson(
51                $response,
52                array(
53                    'error' => $e->getMessage()
54                )
55            );
56        }
57
58        return \BO\Slim\Render::withJson(
59            $response,
60            array(
61                'previewHtml' => $mail->getHtmlPart(),
62                'previewPlain' => $mail->getPlainPart()
63            )
64        );
65    }
66}