Explorar el Código

added migration update api endpoint

CauseFX hace 5 años
padre
commit
30010e6683

+ 1 - 3
api/classes/organizr.class.php

@@ -461,9 +461,7 @@ class Organizr
 			if ($compare->lessThan($oldVer, $versionCheck)) {
 				$updateDB = false;
 				$oldVer = $versionCheck;
-				$this->upgradeSettingsTabURL();
-				$this->upgradeHomepageTabURL();
-				
+				$this->upgradeToVersion($versionCheck);
 			}
 			// End Upgrade check start for version above
 			if ($updateDB == true) {

+ 1 - 1
api/functions/update-functions.php

@@ -33,7 +33,7 @@ trait UpdateFunctions
 			$this->setAPIResponse('success', $windowsUpdate, 200);
 			return true;
 		} else {
-			$this->setAPIResponse('error', 'Update Complete - check log.txt for output', 500);
+			$this->setAPIResponse('success', 'Update Complete - check log.txt for output', 200);
 			return false;
 		}
 	}

+ 13 - 0
api/functions/upgrade-functions.php

@@ -2,6 +2,19 @@
 
 trait UpgradeFunctions
 {
+	public function upgradeToVersion($version = '2.1.0')
+	{
+		switch ($version) {
+			case '2.1.0':
+				$this->upgradeSettingsTabURL();
+				$this->upgradeHomepageTabURL();
+				$this->setAPIResponse('success', 'Ran update function for version: ' . $version, 200);
+				return true;
+			default:
+				return true;
+		}
+	}
+	
 	public function upgradeSettingsTabURL()
 	{
 		$response = [

+ 24 - 0
api/v2/routes/update.php

@@ -148,4 +148,28 @@ $app->get('/update/windows', function ($request, $response, $args) {
 		->withHeader('Content-Type', 'application/json;charset=UTF-8')
 		->withStatus($GLOBALS['responseCode']);
 	
+});
+$app->get('/update/migrate/{version}', function ($request, $response, $args) {
+	/**
+	 * @OA\Get(
+	 *     security={{ "api_key":{} }},
+	 *     tags={"update"},
+	 *     path="/api/v2/update/migrate/{version}",
+	 *     summary="Run Organizr Version Mirgation for specific version",
+	 *     @OA\Response(response="200",description="Success",@OA\JsonContent(ref="#/components/schemas/success-message")),
+	 *     @OA\Response(response="401",description="Unauthorized",@OA\JsonContent(ref="#/components/schemas/unauthorized-message")),
+	 *     @OA\Response(response="404",description="Error",@OA\JsonContent(ref="#/components/schemas/error-message")),
+	 *     @OA\Response(response="422",description="Error",@OA\JsonContent(ref="#/components/schemas/error-message")),
+	 *     @OA\Response(response="500",description="Error",@OA\JsonContent(ref="#/components/schemas/error-message")),
+	 * )
+	 */
+	$Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
+	if ($Organizr->qualifyRequest(1, true)) {
+		$Organizr->upgradeToVersion($args['version']);
+	}
+	$response->getBody()->write(jsonE($GLOBALS['api']));
+	return $response
+		->withHeader('Content-Type', 'application/json;charset=UTF-8')
+		->withStatus($GLOBALS['responseCode']);
+	
 });