Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
ExportAll
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 export
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2namespace Apie\Export\Actions;
3
4use Apie\Core\Attributes\Context;
5use Apie\Core\Attributes\ExampleValue;
6use Apie\Core\Attributes\Not;
7use Apie\Core\Attributes\Requires;
8use Apie\Core\Attributes\Route;
9use Apie\Core\Attributes\StaticCheck;
10use Apie\Core\Context\ApieContext;
11use Apie\Core\ContextConstants;
12use Apie\Core\Datalayers\Lists\EntityListInterface;
13use Apie\Core\Enums\ConsoleCommand;
14use Apie\Core\Enums\RequestMethod;
15use Apie\Core\FileStorage\StoredFile;
16use Apie\Export\EntityExport;
17use Psr\Http\Message\UploadedFileInterface;
18
19class ExportAll
20{
21    #[StaticCheck(
22        new Not(new Requires(ConsoleCommand::class)),
23        new Not(new Requires(ContextConstants::MCP_SERVER))
24    )]
25    #[Route('/export/{resourceName}.{extension}', RequestMethod::GET)]
26    public function export(
27        #[Context()]
28        EntityExport $exporter,
29        #[Context()]
30        EntityListInterface $list,
31        #[Context()]
32        \ReflectionClass $resourceName,
33        #[Context()]
34        ApieContext $apieContext,
35        #[Context('filename')]
36        ?string $outputFilename = null,
37        #[Context('extension')]
38        #[ExampleValue('xlsx', 'Excel 2007+ file')]
39        #[ExampleValue('csv', 'Comma separated values')]
40        string $extension = 'xlsx'
41    ): UploadedFileInterface {
42        return StoredFile::createFromResource(
43            $exporter->streamFromEntityList(
44                $resourceName,
45                $list,
46                $apieContext,
47                $outputFilename . '.' . $extension
48            ),
49            clientOriginalFile: $outputFilename . '.' . $extension
50        );
51    }
52}