Skip to content

Commit 467bcbd

Browse files
authored
Add support for Lists in querystring (#2018)
1 parent 9263bae commit 467bcbd

1 file changed

Lines changed: 21 additions & 12 deletions

File tree

src/Generator/InputGenerator.php

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -352,19 +352,28 @@ private function inputClassRequestPartGetters(StructureMember $member, ClassBuil
352352
{
353353
$memberShape = $member->getShape();
354354
if ($memberShape instanceof ListShape) {
355-
if ('header' !== $requestPart) {
356-
throw new \InvalidArgumentException(\sprintf('ListShape in request part "%s" is not yet implemented', $requestPart));
357-
}
358-
359-
$bodyCode = '
360-
APPLY_HOOK
361-
$items = [];
362-
foreach (INPUT as $value) {
363-
VALIDATE_ENUM
364-
$items[] = VALUE;
355+
if ('header' === $requestPart) {
356+
$bodyCode = '
357+
APPLY_HOOK
358+
$items = [];
359+
foreach (INPUT as $value) {
360+
VALIDATE_ENUM
361+
$items[] = VALUE;
362+
}
363+
OUTPUT = implode(\',\', $items);
364+
';
365+
} elseif ('querystring' === $requestPart) {
366+
$bodyCode = '
367+
APPLY_HOOK
368+
foreach (INPUT as $value) {
369+
VALIDATE_ENUM
370+
OUTPUT[] = VALUE;
371+
}
372+
';
373+
$this->requirementsRegistry->addRequirement('async-aws/core', '^1.28');
374+
} else {
375+
throw new \InvalidArgumentException(\sprintf('ListShape in request part "%s" is not yet implemented.', $requestPart));
365376
}
366-
OUTPUT = implode(\',\', $items);
367-
';
368377

369378
return strtr($bodyCode, [
370379
'INPUT' => $input,

0 commit comments

Comments
 (0)