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