Files
Mangarr/src/Domain/Conversion/Infrastructure/ApiPlatform/Resource/ConvertFileResource.php

67 lines
2.3 KiB
PHP

<?php
namespace App\Domain\Conversion\Infrastructure\ApiPlatform\Resource;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Post;
use ApiPlatform\OpenApi\Model;
use App\Domain\Conversion\Infrastructure\ApiPlatform\Controller\ConvertFileController;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Validator\Constraints as Assert;
#[ApiResource(
shortName: 'Conversion',
operations: [
new Post(
uriTemplate: '/conversions/convert',
controller: ConvertFileController::class,
deserialize: false,
openapiContext: [
'summary' => 'Convert comic book file to CBZ',
'description' => 'Converts a CBR or CBZ file to CBZ format and returns the converted file for download',
'requestBody' => [
'content' => [
'multipart/form-data' => [
'schema' => [
'type' => 'object',
'required' => ['file'],
'properties' => [
'file' => [
'type' => 'string',
'format' => 'binary',
'description' => 'Comic book file to convert (CBR, CBZ, max 150MB)'
]
]
]
]
]
],
'responses' => [
'200' => [
'description' => 'File converted successfully',
'content' => [
'application/x-cbz' => [
'schema' => [
'type' => 'string',
'format' => 'binary'
]
]
]
]
]
]
)
]
)]
class ConvertFileResource
{
public ?File $file = null;
public ?string $fileName = null;
// Propriétés pour la réponse
public mixed $fileContent = null;
public ?string $filename = null;
public ?string $originalConvertedFilePath = null;
}