Improve args parsing to remove unnecessary defaults.

This commit is contained in:
dcooperdalrymple
2024-09-12 17:30:42 -05:00
parent 19c01f60ad
commit df844495b1

View File

@@ -21,20 +21,29 @@ class Publications {
$this->issuu = $issuu; $this->issuu = $issuu;
} }
private static function parse_args(array $args, array $defaults):array {
return array_filter(
wp_parse_args($args, $defaults),
function ($value, $key) use ($defaults) {
return $value !== $defaults[$key];
},
ARRAY_FILTER_USE_BOTH
);
}
public function getPublicationAssetsBySlug(string $slug, array $args = []):stdClass { public function getPublicationAssetsBySlug(string $slug, array $args = []):stdClass {
$args = wp_parse_args($args, [ $args = self::parse_args($args, [
'assetType' => '', 'assetType' => '',
'size' => 10, 'size' => 10,
'page' => 1, 'page' => 1,
'documentPageNumber' => 0.0, 'documentPageNumber' => 0.0,
]); ]);
if (!$args['documentPageNumber']) unset($args['documentPageNumber']);
return $this->issuu->getResponse(method: 'GET', endpoint: "publications/{$slug}/assets", queryParameters: $args); return $this->issuu->getResponse(method: 'GET', endpoint: "publications/{$slug}/assets", queryParameters: $args);
} }
public function getPublicationEmbedBySlug(string $slug, array $args = []):stdClass { public function getPublicationEmbedBySlug(string $slug, array $args = []):stdClass {
$args = wp_parse_args($args, [ $args = self::parse_args($args, [
'responsive' => true, 'responsive' => true,
'width' => '100%', 'width' => '100%',
'height' => '100%', 'height' => '100%',