Skip postman schema conversion if it is already same as specified (#10)

This commit is contained in:
Anthony Axenov 2023-09-18 00:33:37 +08:00
parent 01d29ee023
commit 60cad4b501
Signed by: anthony
GPG Key ID: EA9EC32FF7CCD4EC
2 changed files with 20 additions and 10 deletions

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PmConverter\Converters\Postman20; namespace PmConverter\Converters\Postman20;
use PmConverter\Collection; use PmConverter\Collection;
use PmConverter\CollectionVersion;
use PmConverter\Converters\{ use PmConverter\Converters\{
Abstract\AbstractConverter, Abstract\AbstractConverter,
ConverterContract}; ConverterContract};
@ -33,12 +34,16 @@ class Postman20Converter extends AbstractConverter implements ConverterContract
public function convert(Collection $collection, string $outputPath): void public function convert(Collection $collection, string $outputPath): void
{ {
$this->collection = $collection; $this->collection = $collection;
$this->collection->info->schema = str_replace('/v2.1.', '/v2.0.', $this->collection->info->schema); // if data was exported from API, here is already valid json to
$this->prepareOutputDir($outputPath); // just flush it in file, otherwise we need to convert it deeper
$this->convertAuth($this->collection->raw()); if ($this->collection->version() === CollectionVersion::Version21) {
foreach ($this->collection->item as $item) { $this->collection->info->schema = str_replace('/v2.1.', '/v2.0.', $this->collection->info->schema);
$this->convertItem($item); $this->convertAuth($this->collection->raw());
foreach ($this->collection->item as $item) {
$this->convertItem($item);
}
} }
$this->prepareOutputDir($outputPath);
$this->writeCollection(); $this->writeCollection();
} }

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PmConverter\Converters\Postman21; namespace PmConverter\Converters\Postman21;
use PmConverter\Collection; use PmConverter\Collection;
use PmConverter\CollectionVersion;
use PmConverter\Converters\{ use PmConverter\Converters\{
Abstract\AbstractConverter, Abstract\AbstractConverter,
ConverterContract}; ConverterContract};
@ -33,12 +34,16 @@ class Postman21Converter extends AbstractConverter implements ConverterContract
public function convert(Collection $collection, string $outputPath): void public function convert(Collection $collection, string $outputPath): void
{ {
$this->collection = $collection; $this->collection = $collection;
$this->collection->info->schema = str_replace('/v2.0.', '/v2.1.', $this->collection->info->schema); // if data was exported from API, here is already valid json to
$this->prepareOutputDir($outputPath); // just flush it in file, otherwise we need to convert it deeper
$this->convertAuth($this->collection->raw()); if ($this->collection->version() === CollectionVersion::Version20) {
foreach ($this->collection->item as $item) { $this->collection->info->schema = str_replace('/v2.0.', '/v2.1.', $this->collection->info->schema);
$this->convertItem($item); $this->convertAuth($this->collection->raw());
foreach ($this->collection->item as $item) {
$this->convertItem($item);
}
} }
$this->prepareOutputDir($outputPath);
$this->writeCollection(); $this->writeCollection();
} }