Completed
Pull Request — master (#9024)
by Christoph
23:36
created
lib/private/App/AppStore/Fetcher/AppFetcher.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -78,13 +78,13 @@  discard block
 block discarded – undo
78 78
 		/** @var mixed[] $response */
79 79
 		$response = parent::fetch($ETag, $content);
80 80
 
81
-		foreach($response['data'] as $dataKey => $app) {
81
+		foreach ($response['data'] as $dataKey => $app) {
82 82
 			$releases = [];
83 83
 
84 84
 			// Filter all compatible releases
85
-			foreach($app['releases'] as $release) {
85
+			foreach ($app['releases'] as $release) {
86 86
 				// Exclude all nightly and pre-releases
87
-				if($release['isNightly'] === false
87
+				if ($release['isNightly'] === false
88 88
 					&& strpos($release['version'], '-') === false) {
89 89
 					// Exclude all versions not compatible with the current version
90 90
 					$versionParser = new VersionParser();
@@ -100,23 +100,23 @@  discard block
 block discarded – undo
100 100
 
101 101
 			// Get the highest version
102 102
 			$versions = [];
103
-			foreach($releases as $release) {
103
+			foreach ($releases as $release) {
104 104
 				$versions[] = $release['version'];
105 105
 			}
106 106
 			usort($versions, 'version_compare');
107 107
 			$versions = array_reverse($versions);
108 108
 			$compatible = false;
109
-			if(isset($versions[0])) {
109
+			if (isset($versions[0])) {
110 110
 				$highestVersion = $versions[0];
111 111
 				foreach ($releases as $release) {
112
-					if ((string)$release['version'] === (string)$highestVersion) {
112
+					if ((string) $release['version'] === (string) $highestVersion) {
113 113
 						$compatible = true;
114 114
 						$response['data'][$dataKey]['releases'] = [$release];
115 115
 						break;
116 116
 					}
117 117
 				}
118 118
 			}
119
-			if(!$compatible) {
119
+			if (!$compatible) {
120 120
 				unset($response['data'][$dataKey]);
121 121
 			}
122 122
 		}
Please login to merge, or discard this patch.
Indentation   +102 added lines, -102 removed lines patch added patch discarded remove patch
@@ -36,115 +36,115 @@
 block discarded – undo
36 36
 
37 37
 class AppFetcher extends Fetcher {
38 38
 
39
-	/** @var CompareVersion */
40
-	private $compareVersion;
39
+    /** @var CompareVersion */
40
+    private $compareVersion;
41 41
 
42
-	/**
43
-	 * @param Factory $appDataFactory
44
-	 * @param IClientService $clientService
45
-	 * @param ITimeFactory $timeFactory
46
-	 * @param IConfig $config
47
-	 * @param CompareVersion $compareVersion
48
-	 * @param ILogger $logger
49
-	 */
50
-	public function __construct(Factory $appDataFactory,
51
-								IClientService $clientService,
52
-								ITimeFactory $timeFactory,
53
-								IConfig $config,
54
-								CompareVersion $compareVersion,
55
-								ILogger $logger) {
56
-		parent::__construct(
57
-			$appDataFactory,
58
-			$clientService,
59
-			$timeFactory,
60
-			$config,
61
-			$logger
62
-		);
42
+    /**
43
+     * @param Factory $appDataFactory
44
+     * @param IClientService $clientService
45
+     * @param ITimeFactory $timeFactory
46
+     * @param IConfig $config
47
+     * @param CompareVersion $compareVersion
48
+     * @param ILogger $logger
49
+     */
50
+    public function __construct(Factory $appDataFactory,
51
+                                IClientService $clientService,
52
+                                ITimeFactory $timeFactory,
53
+                                IConfig $config,
54
+                                CompareVersion $compareVersion,
55
+                                ILogger $logger) {
56
+        parent::__construct(
57
+            $appDataFactory,
58
+            $clientService,
59
+            $timeFactory,
60
+            $config,
61
+            $logger
62
+        );
63 63
 
64
-		$this->fileName = 'apps.json';
65
-		$this->setEndpoint();
66
-		$this->compareVersion = $compareVersion;
67
-	}
64
+        $this->fileName = 'apps.json';
65
+        $this->setEndpoint();
66
+        $this->compareVersion = $compareVersion;
67
+    }
68 68
 
69
-	/**
70
-	 * Only returns the latest compatible app release in the releases array
71
-	 *
72
-	 * @param string $ETag
73
-	 * @param string $content
74
-	 *
75
-	 * @return array
76
-	 */
77
-	protected function fetch($ETag, $content) {
78
-		/** @var mixed[] $response */
79
-		$response = parent::fetch($ETag, $content);
69
+    /**
70
+     * Only returns the latest compatible app release in the releases array
71
+     *
72
+     * @param string $ETag
73
+     * @param string $content
74
+     *
75
+     * @return array
76
+     */
77
+    protected function fetch($ETag, $content) {
78
+        /** @var mixed[] $response */
79
+        $response = parent::fetch($ETag, $content);
80 80
 
81
-		foreach($response['data'] as $dataKey => $app) {
82
-			$releases = [];
81
+        foreach($response['data'] as $dataKey => $app) {
82
+            $releases = [];
83 83
 
84
-			// Filter all compatible releases
85
-			foreach($app['releases'] as $release) {
86
-				// Exclude all nightly and pre-releases
87
-				if($release['isNightly'] === false
88
-					&& strpos($release['version'], '-') === false) {
89
-					// Exclude all versions not compatible with the current version
90
-					$versionParser = new VersionParser();
91
-					$version = $versionParser->getVersion($release['rawPlatformVersionSpec']);
92
-					$ncVersion = $this->getVersion();
93
-					$min = $version->getMinimumVersion();
94
-					$max = $version->getMaximumVersion();
95
-					$minFulfilled = $this->compareVersion->isCompatible($ncVersion, $min, '>=');
96
-					$maxFulfilled = $max !== '' &&
97
-						$this->compareVersion->isCompatible($ncVersion, $max, '<=');
98
-					if ($minFulfilled && $maxFulfilled) {
99
-						$releases[] = $release;
100
-					}
101
-				}
102
-			}
84
+            // Filter all compatible releases
85
+            foreach($app['releases'] as $release) {
86
+                // Exclude all nightly and pre-releases
87
+                if($release['isNightly'] === false
88
+                    && strpos($release['version'], '-') === false) {
89
+                    // Exclude all versions not compatible with the current version
90
+                    $versionParser = new VersionParser();
91
+                    $version = $versionParser->getVersion($release['rawPlatformVersionSpec']);
92
+                    $ncVersion = $this->getVersion();
93
+                    $min = $version->getMinimumVersion();
94
+                    $max = $version->getMaximumVersion();
95
+                    $minFulfilled = $this->compareVersion->isCompatible($ncVersion, $min, '>=');
96
+                    $maxFulfilled = $max !== '' &&
97
+                        $this->compareVersion->isCompatible($ncVersion, $max, '<=');
98
+                    if ($minFulfilled && $maxFulfilled) {
99
+                        $releases[] = $release;
100
+                    }
101
+                }
102
+            }
103 103
 
104
-			// Get the highest version
105
-			$versions = [];
106
-			foreach($releases as $release) {
107
-				$versions[] = $release['version'];
108
-			}
109
-			usort($versions, 'version_compare');
110
-			$versions = array_reverse($versions);
111
-			$compatible = false;
112
-			if(isset($versions[0])) {
113
-				$highestVersion = $versions[0];
114
-				foreach ($releases as $release) {
115
-					if ((string)$release['version'] === (string)$highestVersion) {
116
-						$compatible = true;
117
-						$response['data'][$dataKey]['releases'] = [$release];
118
-						break;
119
-					}
120
-				}
121
-			}
122
-			if(!$compatible) {
123
-				unset($response['data'][$dataKey]);
124
-			}
125
-		}
104
+            // Get the highest version
105
+            $versions = [];
106
+            foreach($releases as $release) {
107
+                $versions[] = $release['version'];
108
+            }
109
+            usort($versions, 'version_compare');
110
+            $versions = array_reverse($versions);
111
+            $compatible = false;
112
+            if(isset($versions[0])) {
113
+                $highestVersion = $versions[0];
114
+                foreach ($releases as $release) {
115
+                    if ((string)$release['version'] === (string)$highestVersion) {
116
+                        $compatible = true;
117
+                        $response['data'][$dataKey]['releases'] = [$release];
118
+                        break;
119
+                    }
120
+                }
121
+            }
122
+            if(!$compatible) {
123
+                unset($response['data'][$dataKey]);
124
+            }
125
+        }
126 126
 
127
-		$response['data'] = array_values($response['data']);
128
-		return $response;
129
-	}
127
+        $response['data'] = array_values($response['data']);
128
+        return $response;
129
+    }
130 130
 
131
-	private function setEndpoint() {
132
-		$versionArray = explode('.', $this->getVersion());
133
-		$this->endpointUrl = sprintf(
134
-			'https://apps.nextcloud.com/api/v1/platform/%d.%d.%d/apps.json',
135
-			$versionArray[0],
136
-			$versionArray[1],
137
-			$versionArray[2]
138
-		);
139
-	}
131
+    private function setEndpoint() {
132
+        $versionArray = explode('.', $this->getVersion());
133
+        $this->endpointUrl = sprintf(
134
+            'https://apps.nextcloud.com/api/v1/platform/%d.%d.%d/apps.json',
135
+            $versionArray[0],
136
+            $versionArray[1],
137
+            $versionArray[2]
138
+        );
139
+    }
140 140
 
141
-	/**
142
-	 * @param string $version
143
-	 * @param string $filename
144
-	 */
145
-	public function setVersion(string $version, string $fileName = 'apps.json') {
146
-		parent::setVersion($version);
147
-		$this->fileName = $fileName;
148
-		$this->setEndpoint();
149
-	}
141
+    /**
142
+     * @param string $version
143
+     * @param string $filename
144
+     */
145
+    public function setVersion(string $version, string $fileName = 'apps.json') {
146
+        parent::setVersion($version);
147
+        $this->fileName = $fileName;
148
+        $this->setEndpoint();
149
+    }
150 150
 }
Please login to merge, or discard this patch.
lib/private/App/CompareVersion.php 1 patch
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -28,70 +28,70 @@
 block discarded – undo
28 28
 
29 29
 class CompareVersion {
30 30
 
31
-	const REGEX_MAJOR = '/^\d+$/';
32
-	const REGEX_MAJOR_MINOR = '/^\d+.\d+$/';
33
-	const REGEX_MAJOR_MINOR_PATCH = '/^\d+.\d+.\d+$/';
34
-	const REGEX_SERVER = '/^\d+.\d+.\d+(.\d+)?$/';
31
+    const REGEX_MAJOR = '/^\d+$/';
32
+    const REGEX_MAJOR_MINOR = '/^\d+.\d+$/';
33
+    const REGEX_MAJOR_MINOR_PATCH = '/^\d+.\d+.\d+$/';
34
+    const REGEX_SERVER = '/^\d+.\d+.\d+(.\d+)?$/';
35 35
 
36
-	/**
37
-	 * Checks if the given server version fulfills the given (app) version requirements.
38
-	 *
39
-	 * Version requirements can be 'major.minor.patch', 'major.minor' or just 'major',
40
-	 * so '13.0.1', '13.0' and '13' are valid.
41
-	 *
42
-	 * @param string $actual version as major.minor.patch notation
43
-	 * @param string $required version where major is requried and minor and patch are optional
44
-	 * @param string $comparator passed to `version_compare`
45
-	 * @return bool whether the requirement is fulfilled
46
-	 * @throws InvalidArgumentException if versions specified in an invalid format
47
-	 */
48
-	public function isCompatible(string $actual, string $required,
49
-		string $comparator = '>='): bool {
36
+    /**
37
+     * Checks if the given server version fulfills the given (app) version requirements.
38
+     *
39
+     * Version requirements can be 'major.minor.patch', 'major.minor' or just 'major',
40
+     * so '13.0.1', '13.0' and '13' are valid.
41
+     *
42
+     * @param string $actual version as major.minor.patch notation
43
+     * @param string $required version where major is requried and minor and patch are optional
44
+     * @param string $comparator passed to `version_compare`
45
+     * @return bool whether the requirement is fulfilled
46
+     * @throws InvalidArgumentException if versions specified in an invalid format
47
+     */
48
+    public function isCompatible(string $actual, string $required,
49
+        string $comparator = '>='): bool {
50 50
 
51
-		if (!preg_match(self::REGEX_SERVER, $actual)) {
52
-			throw new InvalidArgumentException('server version is invalid');
53
-		}
51
+        if (!preg_match(self::REGEX_SERVER, $actual)) {
52
+            throw new InvalidArgumentException('server version is invalid');
53
+        }
54 54
 
55
-		if (preg_match(self::REGEX_MAJOR, $required) === 1) {
56
-			return $this->compareMajor($actual, $required, $comparator);
57
-		} else if (preg_match(self::REGEX_MAJOR_MINOR, $required) === 1) {
58
-			return $this->compareMajorMinor($actual, $required, $comparator);
59
-		} else if (preg_match(self::REGEX_MAJOR_MINOR_PATCH, $required) === 1) {
60
-			return $this->compareMajorMinorPatch($actual, $required, $comparator);
61
-		} else {
62
-			throw new InvalidArgumentException('required version is invalid');
63
-		}
64
-	}
55
+        if (preg_match(self::REGEX_MAJOR, $required) === 1) {
56
+            return $this->compareMajor($actual, $required, $comparator);
57
+        } else if (preg_match(self::REGEX_MAJOR_MINOR, $required) === 1) {
58
+            return $this->compareMajorMinor($actual, $required, $comparator);
59
+        } else if (preg_match(self::REGEX_MAJOR_MINOR_PATCH, $required) === 1) {
60
+            return $this->compareMajorMinorPatch($actual, $required, $comparator);
61
+        } else {
62
+            throw new InvalidArgumentException('required version is invalid');
63
+        }
64
+    }
65 65
 
66
-	private function compareMajor(string $actual, string $required,
67
-		string $comparator) {
68
-		$actualMajor = explode('.', $actual)[0];
69
-		$requiredMajor = explode('.', $required)[0];
66
+    private function compareMajor(string $actual, string $required,
67
+        string $comparator) {
68
+        $actualMajor = explode('.', $actual)[0];
69
+        $requiredMajor = explode('.', $required)[0];
70 70
 
71
-		return version_compare($actualMajor, $requiredMajor, $comparator);
72
-	}
71
+        return version_compare($actualMajor, $requiredMajor, $comparator);
72
+    }
73 73
 
74
-	private function compareMajorMinor(string $actual, string $required,
75
-		string $comparator) {
76
-		$actualMajor = explode('.', $actual)[0];
77
-		$actualMinor = explode('.', $actual)[1];
78
-		$requiredMajor = explode('.', $required)[0];
79
-		$requiredMinor = explode('.', $required)[1];
74
+    private function compareMajorMinor(string $actual, string $required,
75
+        string $comparator) {
76
+        $actualMajor = explode('.', $actual)[0];
77
+        $actualMinor = explode('.', $actual)[1];
78
+        $requiredMajor = explode('.', $required)[0];
79
+        $requiredMinor = explode('.', $required)[1];
80 80
 
81
-		return version_compare("$actualMajor.$actualMinor",
82
-			"$requiredMajor.$requiredMinor", $comparator);
83
-	}
81
+        return version_compare("$actualMajor.$actualMinor",
82
+            "$requiredMajor.$requiredMinor", $comparator);
83
+    }
84 84
 
85
-	private function compareMajorMinorPatch($actual, $required, $comparator) {
86
-		$actualMajor = explode('.', $actual)[0];
87
-		$actualMinor = explode('.', $actual)[1];
88
-		$actualPatch = explode('.', $actual)[2];
89
-		$requiredMajor = explode('.', $required)[0];
90
-		$requiredMinor = explode('.', $required)[1];
91
-		$requiredPatch = explode('.', $required)[2];
85
+    private function compareMajorMinorPatch($actual, $required, $comparator) {
86
+        $actualMajor = explode('.', $actual)[0];
87
+        $actualMinor = explode('.', $actual)[1];
88
+        $actualPatch = explode('.', $actual)[2];
89
+        $requiredMajor = explode('.', $required)[0];
90
+        $requiredMinor = explode('.', $required)[1];
91
+        $requiredPatch = explode('.', $required)[2];
92 92
 
93
-		return version_compare("$actualMajor.$actualMinor.$actualPatch",
94
-			"$requiredMajor.$requiredMinor.$requiredPatch", $comparator);
95
-	}
93
+        return version_compare("$actualMajor.$actualMinor.$actualPatch",
94
+            "$requiredMajor.$requiredMinor.$requiredPatch", $comparator);
95
+    }
96 96
 
97 97
 }
Please login to merge, or discard this patch.