Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
FilesController
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 4
42
0.00% covered (danger)
0.00%
0 / 1
 index
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 webdavIndex
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 webdavPath
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 webdav
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Olz\Apps\Files;
4
5use Olz\Apps\Files\Components\OlzFiles\OlzFiles;
6use Olz\Apps\Files\Components\OlzWebDav\OlzWebDav;
7use Olz\Utils\HttpUtils;
8use Psr\Log\LoggerInterface;
9use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
10use Symfony\Component\HttpFoundation\Request;
11use Symfony\Component\HttpFoundation\Response;
12use Symfony\Component\Routing\Annotation\Route;
13
14class FilesController extends AbstractController {
15    #[Route('/apps/files')]
16    public function index(
17        Request $request,
18        LoggerInterface $logger,
19        HttpUtils $httpUtils,
20        OlzFiles $olzFiles,
21    ): Response {
22        return $httpUtils->measure($request, [], function () use ($olzFiles) {
23            $html_out = $olzFiles->getHtml([]);
24            return new Response($html_out);
25        });
26    }
27
28    #[Route('/apps/files/webdav')]
29    public function webdavIndex(
30        Request $request,
31        LoggerInterface $logger,
32        HttpUtils $httpUtils,
33        OlzWebDav $olzWebDav,
34    ): Response {
35        return $httpUtils->measure($request, [], function () use ($request, $logger, $olzWebDav) {
36            return $this->webdav($request, $logger, $olzWebDav);
37        });
38    }
39
40    #[Route('/apps/files/webdav/{path}', requirements: ['path' => '.*'])]
41    public function webdavPath(
42        Request $request,
43        LoggerInterface $logger,
44        HttpUtils $httpUtils,
45        OlzWebDav $olzWebDav,
46        string $path,
47    ): Response {
48        return $httpUtils->measure($request, [], function () use ($request, $logger, $olzWebDav, $path) {
49            return $this->webdav($request, $logger, $olzWebDav, $path);
50        });
51    }
52
53    protected function webdav(
54        Request $request,
55        LoggerInterface $logger,
56        OlzWebDav $olzWebDav,
57        ?string $path = null,
58    ): Response {
59        $html_out = $olzWebDav->getHtml(['path' => $path]);
60        $response = new Response($html_out);
61        foreach (headers_list() as $header) {
62            $colon_position = strpos($header, ':');
63            if ($colon_position !== false) {
64                $key = substr($header, 0, $colon_position);
65                $value = substr($header, $colon_position + 1);
66                $response->headers->set($key, $value);
67            }
68        }
69        return $response;
70    }
71}