From acaca2d48f469fcee88b6b0326ba6329cc3ab4fc Mon Sep 17 00:00:00 2001 From: dem Date: Wed, 6 Mar 2019 00:51:18 +0100 Subject: [PATCH] Remove duplicate code --- .codeclimate.yml | 4 ++-- src/ActivityPhp/Server/Actor/Inbox.php | 15 ++++--------- src/ActivityPhp/Server/Actor/Outbox.php | 15 ++++--------- src/ActivityPhp/Server/Helper.php | 29 ++++++++++++++++++++----- 4 files changed, 33 insertions(+), 30 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index 94c6fec..b972117 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -5,13 +5,13 @@ checks: threshold: 10 method-complexity: config: - threshold: 10 + threshold: 20 method-count: config: threshold: 25 method-lines: config: - threshold: 30 + threshold: 50 nested-control-flow: config: threshold: 4 diff --git a/src/ActivityPhp/Server/Actor/Inbox.php b/src/ActivityPhp/Server/Actor/Inbox.php index 4104d4e..005907e 100644 --- a/src/ActivityPhp/Server/Actor/Inbox.php +++ b/src/ActivityPhp/Server/Actor/Inbox.php @@ -54,17 +54,10 @@ public function post(Request $request) try { // Check accept header - if (!Helper::validateAcceptHeader( - $request->headers->get('accept') - ) - ) { - throw new Exception( - sprintf( - "HTTP Accept header error. Given: '%s'", - $request->headers->get('accept') - ) - ); - } + Helper::validateAcceptHeader( + $request->headers->get('accept'), + true + ); // Check current actor can post diff --git a/src/ActivityPhp/Server/Actor/Outbox.php b/src/ActivityPhp/Server/Actor/Outbox.php index c772d40..d35210a 100644 --- a/src/ActivityPhp/Server/Actor/Outbox.php +++ b/src/ActivityPhp/Server/Actor/Outbox.php @@ -100,17 +100,10 @@ public function post(Request $request) { try { // Check accept header - if (!Helper::validateAcceptHeader( - $request->headers->get('accept') - ) - ) { - throw new Exception( - sprintf( - "HTTP Accept header error. Given: '%s'", - $request->headers->get('accept') - ) - ); - } + Helper::validateAcceptHeader( + $request->headers->get('accept'), + true + ); // Check current actor can post diff --git a/src/ActivityPhp/Server/Helper.php b/src/ActivityPhp/Server/Helper.php index 3560535..2d60dd7 100644 --- a/src/ActivityPhp/Server/Helper.php +++ b/src/ActivityPhp/Server/Helper.php @@ -41,17 +41,34 @@ abstract class Helper * Validate HTTP Accept headers * * @param null|string|array $accept + * @param bool $strict Strict mode * @return bool + * @throws \Exception when strict mode enabled */ - public static function validateAcceptHeader($accept) + public static function validateAcceptHeader($accept, $strict = false) { - if (is_string($accept)) { - return in_array($accept, self::$acceptHeaders); - } elseif (is_array($accept)) { - return count( + if (is_string($accept) + && in_array($accept, self::$acceptHeaders) + ) { + return true; + } elseif (is_array($accept) + && count( array_intersect($accept, self::$acceptHeaders) - ) > 0; + ) + ) { + return true; } + + if (!$strict) { + return false; + } + + throw new Exception( + sprintf( + "HTTP Accept header error. Given: '%s'", + $accept + ) + ); } /**