Merge pull request #182 from goteo/feat/charges-order-by-date
[feat] Charges order by date
This commit is contained in:
Generated
+22
-21
@@ -10016,16 +10016,16 @@
|
||||
},
|
||||
{
|
||||
"name": "friendsofphp/php-cs-fixer",
|
||||
"version": "v3.89.0",
|
||||
"version": "v3.92.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
|
||||
"reference": "4dd6768cb7558440d27d18f54909eee417317ce9"
|
||||
"reference": "260cc8c4a1d2f6d2f22cd4f9c70aa72e55ebac58"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/4dd6768cb7558440d27d18f54909eee417317ce9",
|
||||
"reference": "4dd6768cb7558440d27d18f54909eee417317ce9",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/260cc8c4a1d2f6d2f22cd4f9c70aa72e55ebac58",
|
||||
"reference": "260cc8c4a1d2f6d2f22cd4f9c70aa72e55ebac58",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10043,30 +10043,31 @@
|
||||
"react/socket": "^1.16",
|
||||
"react/stream": "^1.4",
|
||||
"sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0",
|
||||
"symfony/console": "^5.4.47 || ^6.4.24 || ^7.0",
|
||||
"symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0",
|
||||
"symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0",
|
||||
"symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0",
|
||||
"symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0",
|
||||
"symfony/console": "^5.4.47 || ^6.4.24 || ^7.0 || ^8.0",
|
||||
"symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
|
||||
"symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
|
||||
"symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
|
||||
"symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
|
||||
"symfony/polyfill-mbstring": "^1.33",
|
||||
"symfony/polyfill-php80": "^1.33",
|
||||
"symfony/polyfill-php81": "^1.33",
|
||||
"symfony/polyfill-php84": "^1.33",
|
||||
"symfony/process": "^5.4.47 || ^6.4.24 || ^7.2",
|
||||
"symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0"
|
||||
"symfony/process": "^5.4.47 || ^6.4.24 || ^7.2 || ^8.0",
|
||||
"symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"facile-it/paraunit": "^1.3.1 || ^2.7",
|
||||
"infection/infection": "^0.31.0",
|
||||
"justinrainbow/json-schema": "^6.5",
|
||||
"keradus/cli-executor": "^2.2",
|
||||
"infection/infection": "^0.31",
|
||||
"justinrainbow/json-schema": "^6.6",
|
||||
"keradus/cli-executor": "^2.3",
|
||||
"mikey179/vfsstream": "^1.6.12",
|
||||
"php-coveralls/php-coveralls": "^2.8",
|
||||
"php-coveralls/php-coveralls": "^2.9",
|
||||
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6",
|
||||
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6",
|
||||
"phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34",
|
||||
"symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2",
|
||||
"symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2"
|
||||
"phpunit/phpunit": "^9.6.31 || ^10.5.60 || ^11.5.46",
|
||||
"symfony/polyfill-php85": "^1.33",
|
||||
"symfony/var-dumper": "^5.4.48 || ^6.4.26 || ^7.4.0 || ^8.0",
|
||||
"symfony/yaml": "^5.4.45 || ^6.4.30 || ^7.4.1 || ^8.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-dom": "For handling output formats in XML",
|
||||
@@ -10081,7 +10082,7 @@
|
||||
"PhpCsFixer\\": "src/"
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"src/Fixer/Internal/*"
|
||||
"src/**/Internal/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@@ -10107,7 +10108,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
|
||||
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.89.0"
|
||||
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.92.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10115,7 +10116,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-10-18T19:30:16+00:00"
|
||||
"time": "2026-01-08T21:57:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "masterminds/html5",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
final class Version20260116120442 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return 'Index on checkout with gateway names';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE INDEX IDX_AF382D4E3D4E91C8BF396750 ON checkout (gateway_name, id)');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('DROP INDEX IDX_AF382D4E3D4E91C8BF396750 ON checkout');
|
||||
}
|
||||
}
|
||||
@@ -92,9 +92,11 @@ class ChargeApiResource
|
||||
|
||||
#[API\ApiProperty(writable: false)]
|
||||
#[API\ApiFilter(Filter\DateFilter::class)]
|
||||
#[API\ApiFilter(Filter\OrderFilter::class, properties: ['dateCreated' => 'DESC'])]
|
||||
public \DateTimeInterface $dateCreated;
|
||||
|
||||
#[API\ApiProperty(writable: false)]
|
||||
#[API\ApiFilter(Filter\DateFilter::class)]
|
||||
#[API\ApiFilter(Filter\OrderFilter::class, properties: ['dateUpdated' => 'DESC'])]
|
||||
public \DateTimeInterface $dateUpdated;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||
#[MapProvider(EntityMapProvider::class)]
|
||||
#[Gedmo\Loggable()]
|
||||
#[ORM\Index(fields: ['migratedId'])]
|
||||
#[ORM\Index(fields: ['gatewayName', 'id'])]
|
||||
#[ORM\Entity(repositoryClass: CheckoutRepository::class)]
|
||||
class Checkout
|
||||
{
|
||||
|
||||
@@ -4,20 +4,21 @@ namespace App\Filter;
|
||||
|
||||
use ApiPlatform\Doctrine\Orm\Filter\AbstractFilter;
|
||||
use ApiPlatform\Doctrine\Orm\Util\QueryNameGeneratorInterface;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use ApiPlatform\Metadata\Operation;
|
||||
use App\ApiResource\Gateway\GatewayApiResource;
|
||||
use App\Gateway\Exception\MissingGatewayException;
|
||||
use App\Gateway\GatewayLocator;
|
||||
use Doctrine\ORM\Query\Expr\Join;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\PropertyInfo\Type;
|
||||
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
|
||||
|
||||
final class GatewayFilter extends AbstractFilter
|
||||
{
|
||||
public function __construct(
|
||||
private IriConverterInterface $iriConverter,
|
||||
private GatewayLocator $gatewayLocator,
|
||||
protected ?ManagerRegistry $managerRegistry,
|
||||
?LoggerInterface $logger = null,
|
||||
protected ?array $properties = null,
|
||||
@@ -68,10 +69,15 @@ final class GatewayFilter extends AbstractFilter
|
||||
|
||||
private function getGatewayName(mixed $value): string
|
||||
{
|
||||
/** @var GatewayApiResource */
|
||||
$gateway = $this->iriConverter->getResourceFromIri($value);
|
||||
$value = \array_slice(\explode('/', $value), -1)[0];
|
||||
|
||||
return $gateway->name;
|
||||
try {
|
||||
$gateway = $this->gatewayLocator->get($value);
|
||||
|
||||
return $gateway::getName();
|
||||
} catch (MissingGatewayException $e) {
|
||||
throw new NotFoundHttpException($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function getDescription(string $resourceClass): array
|
||||
|
||||
Reference in New Issue
Block a user