Skip to content

Commit

Permalink
latest output from v4
Browse files Browse the repository at this point in the history
  • Loading branch information
dcarbone committed Feb 22, 2025
1 parent 3a00cd3 commit 4052421
Show file tree
Hide file tree
Showing 11,396 changed files with 99,030 additions and 97,066 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
9 changes: 4 additions & 5 deletions src/DCarbone/PHPFHIRGenerated/Autoloader.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
* class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
*
* Class creation date: February 12th, 2025 19:32+0000
* Class creation date: February 22nd, 2025 18:56+0000
*
* PHPFHIR Copyright:
*
Expand Down Expand Up @@ -76,14 +76,12 @@ abstract class Autoloader
'DCarbone\PHPFHIRGenerated\Client\UnexpectedResponseCodeException' => __DIR__ . '/Client/UnexpectedResponseCodeException.php',
'DCarbone\PHPFHIRGenerated\Client\HTTPMethodEnum' => __DIR__ . '/Client/HTTPMethodEnum.php',
'DCarbone\PHPFHIRGenerated\Client\Config' => __DIR__ . '/Client/Config.php',
'DCarbone\PHPFHIRGenerated\Client\ResponseFormatEnum' => __DIR__ . '/Client/ResponseFormatEnum.php',
'DCarbone\PHPFHIRGenerated\Client\ClientErrorException' => __DIR__ . '/Client/ClientErrorException.php',
'DCarbone\PHPFHIRGenerated\VersionEnum' => __DIR__ . '/VersionEnum.php',
'DCarbone\PHPFHIRGenerated\FHIRVersion' => __DIR__ . '/FHIRVersion.php',
'DCarbone\PHPFHIRGenerated\Types\PrimitiveContainerTypeInterface' => __DIR__ . '/Types/PrimitiveContainerTypeInterface.php',
'DCarbone\PHPFHIRGenerated\Types\DSTU1PrimitiveContainerTypeInterface' => __DIR__ . '/Types/DSTU1PrimitiveContainerTypeInterface.php',
'DCarbone\PHPFHIRGenerated\Types\ResourceIDTypeInterface' => __DIR__ . '/Types/ResourceIDTypeInterface.php',
'DCarbone\PHPFHIRGenerated\Types\ValueContainerTrait' => __DIR__ . '/Types/ValueContainerTrait.php',
'DCarbone\PHPFHIRGenerated\Types\ValueContainerTypeInterface' => __DIR__ . '/Types/ValueContainerTypeInterface.php',
'DCarbone\PHPFHIRGenerated\Types\DSTU1TypeInterface' => __DIR__ . '/Types/DSTU1TypeInterface.php',
'DCarbone\PHPFHIRGenerated\Types\TypeInterface' => __DIR__ . '/Types/TypeInterface.php',
'DCarbone\PHPFHIRGenerated\Types\SourceXMLNamespaceTrait' => __DIR__ . '/Types/SourceXMLNamespaceTrait.php',
'DCarbone\PHPFHIRGenerated\Types\CommentContainerTrait' => __DIR__ . '/Types/CommentContainerTrait.php',
Expand Down Expand Up @@ -113,6 +111,7 @@ abstract class Autoloader
'DCarbone\PHPFHIRGenerated\Encoding\XMLSerializationOptionsTrait' => __DIR__ . '/Encoding/XMLSerializationOptionsTrait.php',
'DCarbone\PHPFHIRGenerated\Encoding\XMLWriter' => __DIR__ . '/Encoding/XMLWriter.php',
'DCarbone\PHPFHIRGenerated\Encoding\UnserializeConfig' => __DIR__ . '/Encoding/UnserializeConfig.php',
'DCarbone\PHPFHIRGenerated\Encoding\SerializeFormatEnum' => __DIR__ . '/Encoding/SerializeFormatEnum.php',
];

private static bool $_registered = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
* class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
*
* Class creation date: February 12th, 2025 19:32+0000
* Class creation date: February 22nd, 2025 18:56+0000
*
* PHPFHIR Copyright:
*
Expand Down
102 changes: 74 additions & 28 deletions src/DCarbone/PHPFHIRGenerated/Client/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
* class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
*
* Class creation date: February 12th, 2025 19:32+0000
* Class creation date: February 22nd, 2025 18:56+0000
*
* PHPFHIR Copyright:
*
Expand All @@ -26,6 +26,9 @@
*
*/

use DCarbone\PHPFHIRGenerated\Encoding\SerializeFormatEnum;
use DCarbone\PHPFHIRGenerated\FHIRVersion;
use DCarbone\PHPFHIRGenerated\Types\ResourceTypeInterface;

/**
* Class Client
Expand All @@ -41,7 +44,7 @@ class Client implements ClientInterface
private const _BASE_CURL_OPTS = [
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERAGENT => 'php-fhir client (build: February 12th, 2025 19:32+0000;)',
CURLOPT_USERAGENT => 'php-fhir client (build: February 22nd, 2025 18:56+0000;)',
];

protected Config $_config;
Expand Down Expand Up @@ -70,62 +73,66 @@ public function getConfig(): Config
*/
public function exec(Request $request): Response
{
$queryParams = array_merge($this->_config->getQueryParams(), $request->queryParams ?? []);

$queryParams = array_merge($this->_config->getDefaultQueryParams(), $request->queryParams ?? []);
$format = $request->format ?? $this->_config->getDefaultFormat();
if (null !== $format) {
$queryParams[self::_PARAM_FORMAT] = $format;
}
$parseResponseHeaders = match(true) {
isset($request->parseResponseHeaders) => $request->parseResponseHeaders,
default => $this->_config->getParseResponseHeaders(),
};

$queryParams[self::_PARAM_FORMAT] = $format->value;
if (isset($request->sort)) {
$queryParams[self::_PARAM_SORT] = $request->sort;
}
if (isset($request->count)) {
$queryParams[self::_PARAM_COUNT] = $request->count;
}

$rc = new Response();

$url = "{$this->_config->getAddress()}{$request->path}?" . http_build_query($queryParams, '', '&', PHP_QUERY_RFC3986);

$curlOpts = self::_BASE_CURL_OPTS
+ [CURLOPT_CUSTOMREQUEST => $request->method]
+ array_merge($this->_config->getCurlOpts(), $request->options ?? []);
$rc = new Response($request->method, $url, $format);

$parseResponseHeaders = ($this->_config->getParseResponseHeaders()
&& (!isset($req->parseResponseHeaders) || $req->parseResponseHeaders))
|| (isset($req->parseResponseHeaders) && $req->parseResponseHeaders);
$curlOpts = self::_BASE_CURL_OPTS + array_merge($this->_config->getCurlOpts(), $request->options ?? []);

if ($parseResponseHeaders) {
$rc->headers = new ResponseHeaders();
$curlOpts[CURLOPT_HEADER] = 1;
$curlOpts[CURLOPT_HEADERFUNCTION] = function($ch, string $line) use (&$rc): int {
return $rc->headers->addLine($line);
};
} else {
$curlOpts[CURLOPT_HEADER] = 0;
}

if (!isset($curlOpts[CURLOPT_HTTPHEADER])) {
$curlOpts[CURLOPT_HTTPHEADER] = [];
}

if (HTTPMethodEnum::GET !== $request->method) {
$curlOpts[CURLOPT_CUSTOMREQUEST] = $request->method->value;
$curlOpts[CURLOPT_HTTPHEADER][] = "X-HTTP-Method-Override: {$request->method->value}";
}

$curlOpts[CURLOPT_HTTPHEADER][] = $this->_buildAcceptHeader($request, $format);

if (isset($request->resource)) {
$curlOpts[CURLOPT_HTTPHEADER][] = $this->_buildContentTypeHeader($request, $format);
}

$ch = curl_init($url);
if (!curl_setopt_array($ch, $curlOpts)) {
throw new \DomainException(sprintf(
'Error setting curl opts for query "%s" with value: %s',
'curl_setopt_array returned false for "%s" with options: %s',
$url,
var_export($curlOpts, true),
));
}

$resp = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err = curl_error($ch);
$errno = curl_errno($ch);
$rc->code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$rc->err = curl_error($ch);
$rc->errno = curl_errno($ch);
curl_close($ch);

$rc->method = $request->method;
$rc->url = $url;
$rc->code = $code;
$rc->err = $err;
$rc->errno = $errno;

if (0 === $errno) {
if (0 === $rc->errno) {
if ($parseResponseHeaders) {
$rc->resp = substr($resp, $rc->headers->getLength());
} else {
Expand All @@ -135,4 +142,43 @@ public function exec(Request $request): Response

return $rc;
}

protected function _buildAcceptHeader(Request $request,
SerializeFormatEnum $format): string
{
$ver = match(true) {
isset($request->version) => $request->version,
isset($request->resource) => $request->resource->_getFHIRVersion(),
default => null,
};
if (null === $ver) {
return "Accept: application/{$format->value}+json, application/json+{$format->value}";
} else if ($ver->getFHIRVersionInteger() < FHIRVersion::STU3_MIN_VERSION_INTEGER) {
return "Accept: application/{$format->value}+fhir; fhirVersion={$ver->getFHIRShortVersion()}";
} else {
return "Accept: application/fhir+{$format->value}; fhirVersion={$ver->getFHIRShortVersion()}";
}
}

protected function _buildContentTypeHeader(Request $request,
SerializeFormatEnum $format): string
{
$ver = $request->resource->_getFHIRVersion();
if (HTTPMethodEnum::PATCH === $request->method) {
return "Content-Type: application/{$format->value}-patch+{$format->value}; fhirVersion={$ver->getFHIRShortVersion()}";
} else if ($ver->getFHIRVersionInteger() < FHIRVersion::STU3_MIN_VERSION_INTEGER) {
return "Content-Type: application/{$format->value}+fhir; fhirVersion={$ver->getFHIRShortVersion()}";
} else {
return "Content-Type: application/fhir+{$format->value}; fhirVersion={$ver->getFHIRShortVersion()}";
}
}

protected function _buildBody(ResourceTypeInterface $resource,
SerializeFormatEnum $format): string
{
return match ($format) {
SerializeFormatEnum::JSON => json_encode($resource),
SerializeFormatEnum::XML => $resource->xmlSerialize(config: $this->_version->getConfig()->getSerializeConfig()),
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
* class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
*
* Class creation date: February 12th, 2025 19:32+0000
* Class creation date: February 22nd, 2025 18:56+0000
*
* PHPFHIR Copyright:
*
Expand Down
2 changes: 1 addition & 1 deletion src/DCarbone/PHPFHIRGenerated/Client/ClientInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
* class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
*
* Class creation date: February 12th, 2025 19:32+0000
* Class creation date: February 22nd, 2025 18:56+0000
*
* PHPFHIR Copyright:
*
Expand Down
35 changes: 16 additions & 19 deletions src/DCarbone/PHPFHIRGenerated/Client/Config.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
* class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
*
* Class creation date: February 12th, 2025 19:32+0000
* Class creation date: February 22nd, 2025 18:56+0000
*
* PHPFHIR Copyright:
*
Expand All @@ -26,6 +26,8 @@
*
*/

use DCarbone\PHPFHIRGenerated\Encoding\SerializeFormatEnum;

/**
* Class Config
*
Expand All @@ -34,35 +36,30 @@
*/
class Config
{
/** @var string */
private string $_address;
/** @var array */
private array $_curlOpts;
/** @var array */
private array $_queryParams;
/** @var null|\DCarbone\PHPFHIRGenerated\Client\ResponseFormatEnum */
private null|ResponseFormatEnum $_defaultFormat;
/** @var bool */
private array $_defaultQueryParams;
private SerializeFormatEnum $_defaultFormat;
private bool $_parseResponseHeaders;

/**
* Config Constructor
*
* @param string $address Fully qualified address of FHIR server, including scheme, port, and any path prefix.
* @param null|\DCarbone\PHPFHIRGenerated\Client\ResponseFormatEnum $defaultFormat Default format to request from server. If not provided, server default will be used. May be overridden by an individual request.
* @param array $queryParams Base query parameters array. These will be added to every request. May be overridden by an individual request.
* @param \DCarbone\PHPFHIRGenerated\Encoding\SerializeFormatEnum $defaultFormat Default serialization format. Defaults to XML.
* @param array $defaultQueryParams Base query parameters array. These will be added to every request. May be overridden by an individual request.
* @param array $curlOpts Base curl options array. These will be added to every request. May be overridden by an individual request.
* @param bool $parseResponseHeaders Whether or not to parse headers from response. This adds a small amount of overhead, so it is recommended to only set to true if actually used.
* @param bool $parseResponseHeaders Whether or not to parse headers from response. This adds overhead to parsing each response, but is also necessary to extract response version information.
*/
public function __construct(string $address,
null|ResponseFormatEnum $defaultFormat = null,
array $queryParams = [],
SerializeFormatEnum $defaultFormat = SerializeFormatEnum::XML,
array $defaultQueryParams = [],
array $curlOpts = [],
bool $parseResponseHeaders = false)
bool $parseResponseHeaders = true)
{
$this->_address = $address;
$this->_defaultFormat = $defaultFormat;
$this->_queryParams = $queryParams;
$this->_defaultQueryParams = $defaultQueryParams;
$this->_curlOpts = $curlOpts;
$this->_parseResponseHeaders = $parseResponseHeaders;
}
Expand All @@ -76,19 +73,19 @@ public function getAddress(): string
}

/**
* @return null|\DCarbone\PHPFHIRGenerated\Client\ResponseFormatEnum
* @return \DCarbone\PHPFHIRGenerated\Encoding\SerializeFormatEnum
*/
public function getDefaultFormat(): null|ResponseFormatEnum
public function getDefaultFormat(): SerializeFormatEnum
{
return $this->_defaultFormat;
}

/**
* @return array
*/
public function getQueryParams(): array
public function getDefaultQueryParams(): array
{
return $this->_queryParams;
return $this->_defaultQueryParams;
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/DCarbone/PHPFHIRGenerated/Client/HTTPMethodEnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
* class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
*
* Class creation date: February 12th, 2025 19:32+0000
* Class creation date: February 22nd, 2025 18:56+0000
*
* PHPFHIR Copyright:
*
Expand Down
Loading

0 comments on commit 4052421

Please sign in to comment.