| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace AsyncAws\S3\Result;
- use AsyncAws\Core\Response;
- use AsyncAws\Core\Result;
- use AsyncAws\S3\Enum\RequestCharged;
- use AsyncAws\S3\ValueObject\Grant;
- use AsyncAws\S3\ValueObject\Grantee;
- use AsyncAws\S3\ValueObject\Owner;
- class GetObjectAclOutput extends Result
- {
- /**
- * Container for the bucket owner's display name and ID.
- */
- private $owner;
- /**
- * A list of grants.
- */
- private $grants;
- private $requestCharged;
- /**
- * @return Grant[]
- */
- public function getGrants(): array
- {
- $this->initialize();
- return $this->grants;
- }
- public function getOwner(): ?Owner
- {
- $this->initialize();
- return $this->owner;
- }
- /**
- * @return RequestCharged::*|null
- */
- public function getRequestCharged(): ?string
- {
- $this->initialize();
- return $this->requestCharged;
- }
- protected function populateResult(Response $response): void
- {
- $headers = $response->getHeaders();
- $this->requestCharged = $headers['x-amz-request-charged'][0] ?? null;
- $data = new \SimpleXMLElement($response->getContent());
- $this->owner = !$data->Owner ? null : new Owner([
- 'DisplayName' => ($v = $data->Owner->DisplayName) ? (string) $v : null,
- 'ID' => ($v = $data->Owner->ID) ? (string) $v : null,
- ]);
- $this->grants = !$data->AccessControlList ? [] : $this->populateResultGrants($data->AccessControlList);
- }
- /**
- * @return Grant[]
- */
- private function populateResultGrants(\SimpleXMLElement $xml): array
- {
- $items = [];
- foreach ($xml->Grant as $item) {
- $items[] = new Grant([
- 'Grantee' => !$item->Grantee ? null : new Grantee([
- 'DisplayName' => ($v = $item->Grantee->DisplayName) ? (string) $v : null,
- 'EmailAddress' => ($v = $item->Grantee->EmailAddress) ? (string) $v : null,
- 'ID' => ($v = $item->Grantee->ID) ? (string) $v : null,
- 'Type' => (string) ($item->Grantee->attributes('xsi', true)['type'][0] ?? null),
- 'URI' => ($v = $item->Grantee->URI) ? (string) $v : null,
- ]),
- 'Permission' => ($v = $item->Permission) ? (string) $v : null,
- ]);
- }
- return $items;
- }
- }
|