From 1f8a079e7d759d1ea84024d838ec6ec4476b6f29 Mon Sep 17 00:00:00 2001 From: Guilherme Branco Stracini Date: Thu, 29 Aug 2024 00:02:04 +0100 Subject: [PATCH] Enhance input validation in ShieldsIo class (#215) * Update ShieldsIo.php * style: format code with PHP CS Fixer This commit fixes the style issues introduced in fdd8858 according to the output from PHP CS Fixer. Details: https://github.com/guibranco/pancake/pull/215 * Update ShieldsIo.php * Update ShieldsIo.php * Update ShieldsIo.php --------- Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com> --- src/ShieldsIo.php | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/ShieldsIo.php b/src/ShieldsIo.php index e781c90..6adb687 100644 --- a/src/ShieldsIo.php +++ b/src/ShieldsIo.php @@ -15,36 +15,32 @@ private function encodeShieldsIoParameters($input) return $input; } - public function generateBadgeUrl($label, $content, $color, $style, $labelColor, $logo) + private function addComponent($component, &$badge) { - $badge = array(); - - if (isset($label) && !empty($label)) { - $label = $this->encodeShieldsIoParameters($label); - $badge[] = $label; - } - - if (isset($content) && !empty($content)) { - $content = $this->encodeShieldsIoParameters($content); - $badge[] = $content; - } - - if (isset($color) && !empty($color)) { - $badge[] = $color; - } - - $queryString = array(); - if (isset($style) && !empty($style)) { - $queryString["style"] = $style; + if (isset($component) && (empty($component) === false || $component === 0)) { + $value = $this->encodeShieldsIoParameters($component); + $badge[] = $value; } + } - if (isset($labelColor) && !empty($labelColor)) { - $queryString["labelColor"] = $labelColor; + private function addQueryString($component, $key, &$queryString) + { + if (isset($component) && empty($component) === false) { + $queryString[$key] = $component; } + } - if (isset($logo) && !empty($logo)) { - $queryString["logo"] = $logo; - } + public function generateBadgeUrl($label, $content, $color, $style, $labelColor, $logo) + { + $badge = []; + $this->addComponent($label, $badge); + $this->addComponent($content, $badge); + $this->addComponent($color, $badge); + + $queryString = []; + $this->addQueryString($style, "style", $queryString); + $this->addQueryString($labelColor, "labelColor", $queryString); + $this->addQueryString($logo, "logo", $queryString); return "https://img.shields.io/badge/" . implode("-", $badge) . "?" . http_build_query($queryString); }