PluginProbe
Media Cloud Sync / 1.4.2
Media Cloud Sync v1.4.2
1.4.2 1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 All 36 releases
media-cloud-sync / includes / sdk / s3 / Aws / EndpointV2 / EndpointV2SerializerTrait.php

EndpointV2SerializerTrait.php in Media Cloud Sync 1.4.2, at includes/sdk/s3/Aws/EndpointV2/EndpointV2SerializerTrait.php

60 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Dudlewebs\WPMCS\s3\Aws\EndpointV2;
4
5 use Dudlewebs\WPMCS\s3\Aws\Api\Serializer\RestSerializer;
6 use Dudlewebs\WPMCS\s3\Aws\EndpointV2\Ruleset\RulesetEndpoint;
7 use Dudlewebs\WPMCS\s3\GuzzleHttp\Psr7\Uri;
8 /**
9 * Set of helper functions used to set endpoints and endpoint
10 * properties derived from dynamic endpoint resolution.
11 *
12 * @internal
13 */
14 trait EndpointV2SerializerTrait
15 {
16 /**
17 * Applies a resolved endpoint, headers and any custom HTTP schemes provided
18 * in client configuration to options which are applied to the serialized request.
19 *
20 * @param $endpoint
21 * @param $headers
22 *
23 * @return void
24 */
25 private function setEndpointV2RequestOptions(RulesetEndpoint $endpoint, array &$headers) : void
26 {
27 $this->applyHeaders($endpoint, $headers);
28 $resolvedUrl = $endpoint->getUrl();
29 $this->applyScheme($resolvedUrl);
30 $this->endpoint = $this instanceof RestSerializer ? new Uri($resolvedUrl) : $resolvedUrl;
31 }
32 /**
33 * Combines modeled headers and headers resolved from an endpoint object.
34 *
35 * @param $endpoint
36 * @param $headers
37 * @return void
38 */
39 private function applyHeaders(RulesetEndpoint $endpoint, array &$headers) : void
40 {
41 if (!\is_null($endpoint->getHeaders())) {
42 $headers = \array_merge($headers, $endpoint->getHeaders());
43 }
44 }
45 /**
46 * Applies custom HTTP schemes provided in client configuration.
47 *
48 * @param $resolvedUrl
49 * @return void
50 */
51 private function applyScheme(&$resolvedUrl) : void
52 {
53 $resolvedEndpointScheme = \parse_url($resolvedUrl, \PHP_URL_SCHEME);
54 $scheme = $this->endpoint instanceof Uri ? $this->endpoint->getScheme() : \parse_url($this->endpoint, \PHP_URL_SCHEME);
55 if (!empty($scheme) && $scheme !== $resolvedEndpointScheme) {
56 $resolvedUrl = \str_replace($resolvedEndpointScheme, $scheme, $resolvedUrl);
57 }
58 }
59 }
60