Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 56
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
MailTemplates
0.00% covered (danger)
0.00%
0 / 56
0.00% covered (danger)
0.00%
0 / 1
42
0.00% covered (danger)
0.00%
0 / 1
 readResponse
0.00% covered (danger)
0.00%
0 / 56
0.00% covered (danger)
0.00%
0 / 1
42
1<?php
2
3/**
4 * @package Zmsadmin
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsadmin;
9
10use BO\Zmsentities\Config as Entity;
11
12class MailTemplates extends BaseController
13{
14    /**
15     * @SuppressWarnings(Param)
16     * @return String
17     */
18    public function readResponse(
19        \Psr\Http\Message\RequestInterface $request,
20        \Psr\Http\Message\ResponseInterface $response,
21        array $args
22    ) {
23        $workstation = \App::$http->readGetResult('/workstation/', ['resolveReferences' => 1])->getEntity();
24        if (!$workstation->getUseraccount()->hasPermissions(['mailtemplates'])) {
25            throw new \BO\Zmsentities\Exception\UserAccountMissingRights();
26        }
27        $providerId = $workstation->scope['provider']['id'];
28
29        $scopeName = $workstation->scope['contact']['name'];
30        $scopeId = $workstation->scope['id'];
31
32        if (isset($args['scopeId']) && !empty($args['scopeId'])) {
33            $scope = \App::$http
34                ->readGetResult('/scope/' . $args['scopeId'] . '/', ['resolveReferences' => 1])
35                ->getEntity();
36
37            $scopeName = $scope->contact->name;
38            $scopeId = $scope->id;
39            $providerId = $scope->provider->id;
40        }
41
42        $config = \App::$http->readGetResult('/config/')->getEntity();
43
44        $mergedMailTemplates = \App::$http->readGetResult('/merged-mailtemplates/' . $providerId . '/')->getCollection();
45        foreach ($mergedMailTemplates as $template) {
46            if ($template['provider']) {
47                $template->isCustom = true;
48            }
49        }
50
51        $priorityNames = [
52            'mail_preconfirmed.twig',
53            'mail_confirmation.twig',
54            'mail_reminder.twig',
55            'mail_delete.twig'
56        ];
57
58        $mergedMailTemplates->prioritizeByName($priorityNames);
59
60        $mainProcessExample = ((new \BO\Zmsentities\Process())->getExample());
61        $mainProcessExample->id = 987654;
62        $dateTime = new \DateTimeImmutable("2015-10-23 08:00:00", new \DateTimeZone('Europe/Berlin'));
63        $mainProcessExample->getFirstAppointment()->setDateTime($dateTime);
64        $mainProcessExample->requests[] = (new \BO\Zmsentities\Request())->getExample();
65
66        $processExample = ((new \BO\Zmsentities\Process())->getExample());
67        $processExample->scope = ((new \BO\Zmsentities\Scope())->getExample());
68        $processExample2 = clone $processExample;
69        $dateTime = new \DateTimeImmutable("2015-12-30 11:55:00", new \DateTimeZone('Europe/Berlin'));
70        $processExample2->getFirstAppointment()->setDateTime($dateTime);
71
72        $processListExample = new \BO\Zmsentities\Collection\ProcessList();
73        $processListExample->addEntity($processExample);
74        $processListExample->addEntity($processExample2);
75        $success = $request->getAttribute('validator')->getParameter('success')->isString()->getValue();
76
77        return \BO\Slim\Render::withHtml(
78            $response,
79            'page/mailtemplates.twig',
80            array(
81                'title' => 'Mail Templates',
82                'pageTitle' => 'Mail Templates für ' . $scopeName,
83                'providerId' => $providerId,
84                'workstation' => $workstation,
85                'config' => $config,
86                'scopeId' => $scopeId,
87                'mailtemplates' => $mergedMailTemplates,
88                'processExample' => $mainProcessExample,
89                'processListExample' => $processListExample,
90                'menuActive' => 'mailtemplates',
91                'success' => $success
92            )
93        );
94    }
95}