From df844495b1f74001e4f95462a9cc7ccfd1afa8ef Mon Sep 17 00:00:00 2001 From: dcooperdalrymple Date: Thu, 12 Sep 2024 17:30:42 -0500 Subject: [PATCH] Improve args parsing to remove unnecessary defaults. --- includes/api/class-publications.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/includes/api/class-publications.php b/includes/api/class-publications.php index dd29539..2dc7f15 100644 --- a/includes/api/class-publications.php +++ b/includes/api/class-publications.php @@ -21,20 +21,29 @@ class Publications { $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 { - $args = wp_parse_args($args, [ + $args = self::parse_args($args, [ 'assetType' => '', 'size' => 10, 'page' => 1, 'documentPageNumber' => 0.0, ]); - if (!$args['documentPageNumber']) unset($args['documentPageNumber']); return $this->issuu->getResponse(method: 'GET', endpoint: "publications/{$slug}/assets", queryParameters: $args); } public function getPublicationEmbedBySlug(string $slug, array $args = []):stdClass { - $args = wp_parse_args($args, [ + $args = self::parse_args($args, [ 'responsive' => true, 'width' => '100%', 'height' => '100%',