aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2018-01-16 20:01:38 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2018-01-16 20:01:38 +0100
commitcdfffe7bda61847f39cf956e00b69d657570e69a (patch)
tree3cc617bb0f6b71090ac8b2a92abd71ec3f4d3bec
parent13a787e2f5d22e4cd8204f4524ea3e2c4eba4d32 (diff)
downloadnextcloud-server-cdfffe7bda61847f39cf956e00b69d657570e69a.tar.gz
nextcloud-server-cdfffe7bda61847f39cf956e00b69d657570e69a.zip
Strict DiscoveryService
* Made strict * Type hints * Return types Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
-rw-r--r--lib/private/OCS/DiscoveryService.php19
-rw-r--r--lib/public/OCS/IDiscoveryService.php3
2 files changed, 12 insertions, 10 deletions
diff --git a/lib/private/OCS/DiscoveryService.php b/lib/private/OCS/DiscoveryService.php
index 4425947c55d..53b4d13e797 100644
--- a/lib/private/OCS/DiscoveryService.php
+++ b/lib/private/OCS/DiscoveryService.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
*
@@ -60,7 +61,7 @@ class DiscoveryService implements IDiscoveryService {
* @param string $service the service you want to discover
* @return array
*/
- public function discover($remote, $service) {
+ public function discover(string $remote, string $service): array {
// Check the cache first
$cacheData = $this->cache->get($remote . '#' . $service);
if($cacheData) {
@@ -77,7 +78,9 @@ class DiscoveryService implements IDiscoveryService {
]);
if($response->getStatusCode() === Http::STATUS_OK) {
$decodedServices = json_decode($response->getBody(), true);
- $discoveredServices = $this->getEndpoints($decodedServices, $service);
+ if (\is_array($decodedServices)) {
+ $discoveredServices = $this->getEndpoints($decodedServices, $service);
+ }
}
} catch (\Exception $e) {
// if we couldn't discover the service or any end-points we return a empty array
@@ -91,17 +94,15 @@ class DiscoveryService implements IDiscoveryService {
/**
* get requested end-points from the requested service
*
- * @param $decodedServices
- * @param $service
+ * @param array $decodedServices
+ * @param string $service
* @return array
*/
- protected function getEndpoints($decodedServices, $service) {
+ protected function getEndpoints(array $decodedServices, string $service): array {
$discoveredServices = [];
- if(is_array($decodedServices) &&
- isset($decodedServices['services'][$service]['endpoints'])
- ) {
+ if(isset($decodedServices['services'][$service]['endpoints'])) {
foreach ($decodedServices['services'][$service]['endpoints'] as $endpoint => $url) {
if($this->isSafeUrl($url)) {
$discoveredServices[$endpoint] = $url;
@@ -119,7 +120,7 @@ class DiscoveryService implements IDiscoveryService {
* @param string $url
* @return bool
*/
- protected function isSafeUrl($url) {
+ protected function isSafeUrl(string $url): bool {
return (bool)preg_match('/^[\/\.\-A-Za-z0-9]+$/', $url);
}
diff --git a/lib/public/OCS/IDiscoveryService.php b/lib/public/OCS/IDiscoveryService.php
index c9e67c3acab..9a86e2a4410 100644
--- a/lib/public/OCS/IDiscoveryService.php
+++ b/lib/public/OCS/IDiscoveryService.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
*
@@ -45,6 +46,6 @@ interface IDiscoveryService {
* @param string $service the service you want to discover
* @return array
*/
- public function discover($remote, $service);
+ public function discover(string $remote, string $service): array;
}