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    /**
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}