Skip to content

Commit ca726d5

Browse files
committed
merge enums
1 parent c7344e9 commit ca726d5

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

src/SDK/SDK.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -633,8 +633,9 @@ public function generate(string $target): void
633633
'contactURL' => $this->spec->getContactURL(),
634634
'contactEmail' => $this->spec->getContactEmail(),
635635
'services' => $this->getFilteredServices(),
636-
'requestEnums' => $this->spec->getRequestEnums(),
636+
'enums' => $this->spec->getAllEnums(),
637637
'responseEnums' => $this->spec->getResponseEnums(),
638+
'allEnums' => $this->spec->getAllEnums(),
638639
'definitions' => $this->spec->getDefinitions(),
639640
'global' => [
640641
'headers' => $this->spec->getGlobalHeaders(),
@@ -725,12 +726,7 @@ public function generate(string $target): void
725726
}
726727
break;
727728
case 'enum':
728-
foreach ($this->spec->getRequestEnums() as $key => $enum) {
729-
$params['enum'] = $enum;
730-
731-
$this->render($template, $destination, $block, $params, $minify);
732-
}
733-
foreach ($this->spec->getResponseEnums() as $key => $enum) {
729+
foreach ($this->spec->getAllEnums() as $key => $enum) {
734730
$params['enum'] = $enum;
735731

736732
$this->render($template, $destination, $block, $params, $minify);

src/Spec/Swagger2.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,7 @@ public function getResponseEnums(): array
544544
foreach ($model['properties'] as $propertyName => $property) {
545545
if (isset($property['enum'])) {
546546
$enumName = $property['x-enum-name'] ?? ucfirst($modelName) . ucfirst($propertyName);
547+
547548
if (!isset($list[$enumName])) {
548549
$list[$enumName] = [
549550
'name' => $enumName,
@@ -556,6 +557,7 @@ public function getResponseEnums(): array
556557
// array of enums
557558
if ((($property['type'] ?? null) === 'array') && isset($property['items']['enum'])) {
558559
$enumName = $property['x-enum-name'] ?? ucfirst($modelName) . ucfirst($propertyName);
560+
559561
if (!isset($list[$enumName])) {
560562
$list[$enumName] = [
561563
'name' => $enumName,
@@ -570,4 +572,20 @@ public function getResponseEnums(): array
570572

571573
return \array_values($list);
572574
}
575+
576+
/**
577+
* @return array
578+
*/
579+
public function getAllEnums(): array
580+
{
581+
$list = [];
582+
foreach ($this->getRequestEnums() as $enum) {
583+
$list[$enum['name']] = $enum;
584+
}
585+
foreach ($this->getResponseEnums() as $enum) {
586+
$list[$enum['name']] = $enum;
587+
}
588+
589+
return \array_values($list);
590+
}
573591
}

templates/dart/lib/enums.dart.twig

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
/// {{spec.title | caseUcfirst}} Enums
22
library {{ language.params.packageName }}.enums;
33

4-
{% for enum in spec.requestEnums %}
5-
part 'src/enums/{{enum.name | caseSnake}}.dart';
6-
{% endfor %}
7-
{% for enum in spec.responseEnums %}
4+
{% for enum in spec.allEnums %}
85
part 'src/enums/{{enum.name | caseSnake}}.dart';
96
{% endfor %}

0 commit comments

Comments
 (0)