diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index 3d1cd65d74..16b70082b5 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -89,13 +89,13 @@ App::get('/v1/migrations/:migrationId') $migration = $dbForProject->getDocument('migrations', $migrationId); if ($migration->isEmpty()) { - throw new Exception(Exception::MIGRATION_NOT_FOUND, 'Migration not found', 404); + throw new Exception(Exception::MIGRATION_NOT_FOUND); } $response->dynamic($migration, Response::MODEL_MIGRATION); }); -App::post('/v1/migrations/:migrationId') +App::patch('/v1/migrations/:migrationId') ->groups(['api', 'migrations']) ->desc('Retry Migration') ->label('scope', 'migrations.write') @@ -106,7 +106,7 @@ App::post('/v1/migrations/:migrationId') ->label('sdk.namespace', 'migrations') ->label('sdk.method', 'retry') ->label('sdk.description', '/docs/references/migrations/retry-migration.md') - ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MIGRATION) ->param('migrationId', '', new UID(), 'Migration unique ID.') @@ -122,9 +122,9 @@ App::post('/v1/migrations/:migrationId') throw new Exception(Exception::MIGRATION_NOT_FOUND); } - // if ($migration->getAttribute('status') !== 'failed') { - // throw new Exception(Exception::MIGRATION_IN_PROGRESS, 'Migration not failed'); - // } + if ($migration->getAttribute('status') !== 'failed') { + throw new Exception(Exception::MIGRATION_IN_PROGRESS, 'Migration not failed yet'); + } $migration ->setAttribute('status', 'pending') @@ -164,17 +164,13 @@ App::delete('/v1/migrations/:migrationId') $migration = $dbForProject->getDocument('migrations', $migrationId); if ($migration->isEmpty()) { - throw new Exception(Exception::MIGRATION_NOT_FOUND, 'Migration not found', 404); + throw new Exception(Exception::MIGRATION_NOT_FOUND); } if (!$dbForProject->deleteDocument('migrations', $migration->getId())) { throw new Exception(Exception::GENERAL_SERVER_ERROR, 'Failed to remove migration from DB', 500); } - $deletes - ->setType(DELETE_TYPE_DOCUMENT) - ->setDocument($migration); - $events->setParam('migrationId', $migration->getId()); $response->noContent(); @@ -190,7 +186,7 @@ App::post('/v1/migrations/appwrite') ->label('sdk.namespace', 'migrations') ->label('sdk.method', 'migrateAppwrite') ->label('sdk.description', '/docs/references/migrations/migration-appwrite.md') - ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MIGRATION) ->param('resources', [], new ArrayList(new WhiteList(Appwrite::getSupportedResources())), 'List of resources to migrate') @@ -234,13 +230,13 @@ App::post('/v1/migrations/appwrite') ->dynamic($migration, Response::MODEL_MIGRATION); }); -App::post('/v1/migrations/appwrite/report') +App::get('/v1/migrations/appwrite/report') ->groups(['api', 'migrations']) ->desc('Generate a report on Appwrite Data') ->label('scope', 'migrations.write') ->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'migrations') - ->label('sdk.method', 'generateAppwriteReport') + ->label('sdk.method', 'getAppwriteReport') ->label('sdk.description', '/docs/references/migrations/migration-appwrite-report.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) @@ -254,12 +250,15 @@ App::post('/v1/migrations/appwrite/report') ->inject('project') ->inject('user') ->action(function (array $resources, string $endpoint, string $projectID, string $key, Response $response) { + try { + $appwrite = new Appwrite($projectID, $endpoint, $key); - $appwrite = new Appwrite($projectID, $endpoint, $key); - - $response - ->setStatusCode(Response::STATUS_CODE_CREATED) - ->dynamic(new Document($appwrite->report($resources)), Response::MODEL_MIGRATION_REPORT); + $response + ->setStatusCode(Response::STATUS_CODE_OK) + ->dynamic(new Document($appwrite->report($resources)), Response::MODEL_MIGRATION_REPORT); + } catch (\Exception $e) { + throw new Exception(Exception::GENERAL_SERVER_ERROR, $e->getMessage()); + } }); @@ -273,7 +272,7 @@ App::post('/v1/migrations/firebase') ->label('sdk.namespace', 'migrations') ->label('sdk.method', 'migrateFirebase') ->label('sdk.description', '/docs/references/migrations/migration-firebase.md') - ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MIGRATION) ->param('resources', [], new ArrayList(new WhiteList(Firebase::getSupportedResources())), 'List of resources to migrate') @@ -313,7 +312,7 @@ App::post('/v1/migrations/firebase') ->dynamic($migration, Response::MODEL_MIGRATION); }); -App::post('/v1/migrations/firebase/report') +App::get('/v1/migrations/firebase/report') ->groups(['api', 'migrations']) ->desc('Generate a report on Firebase Data') ->label('scope', 'migrations.write') @@ -321,7 +320,7 @@ App::post('/v1/migrations/firebase/report') ->label('audits.event', 'migration.report') ->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'migrations') - ->label('sdk.method', 'generateFirebaseReport') + ->label('sdk.method', 'getFirebaseReport') ->label('sdk.description', '/docs/references/migrations/migration-firebase-report.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) @@ -335,12 +334,15 @@ App::post('/v1/migrations/firebase/report') ->inject('user') ->inject('events') ->action(function (array $resources, string $serviceAccount, string $databaseURL, Response $response, Database $dbForProject, Document $project, Document $user, Event $eventsInstance) { + try { + $firebase = new Firebase(json_decode($serviceAccount, true), $databaseURL); - $firebase = new Firebase(json_decode($serviceAccount, true), $databaseURL); - - $response - ->setStatusCode(Response::STATUS_CODE_CREATED) - ->dynamic(new Document($firebase->report($resources)), Response::MODEL_MIGRATION_REPORT); + $response + ->setStatusCode(Response::STATUS_CODE_CREATED) + ->dynamic(new Document($firebase->report($resources)), Response::MODEL_MIGRATION_REPORT); + } catch (\Exception $e) { + throw new Exception(Exception::GENERAL_SERVER_ERROR, $e->getMessage()); + } }); App::post('/v1/migrations/supabase') @@ -353,7 +355,7 @@ App::post('/v1/migrations/supabase') ->label('sdk.namespace', 'migrations') ->label('sdk.method', 'migrateSupabase') ->label('sdk.description', '/docs/references/migrations/migration-supabase.md') - ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MIGRATION) ->param('resources', [], new ArrayList(new WhiteList(Supabase::getSupportedResources(), true)), 'List of resources to migrate') @@ -404,13 +406,13 @@ App::post('/v1/migrations/supabase') }); -App::post('/v1/migrations/supabase/report') +App::get('/v1/migrations/supabase/report') ->groups(['api', 'migrations']) ->desc('Generate a report on Supabase Data') ->label('scope', 'migrations.write') ->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'migrations') - ->label('sdk.method', 'generateSupabaseReport') + ->label('sdk.method', 'getSupabaseReport') ->label('sdk.description', '/docs/references/migrations/migration-supabase-report.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) @@ -435,14 +437,7 @@ App::post('/v1/migrations/supabase/report') ->setStatusCode(Response::STATUS_CODE_CREATED) ->dynamic(new Document($supabase->report($resources)), Response::MODEL_MIGRATION_REPORT); } catch (\Exception $e) { - var_dump($e->getMessage()); - - $response - ->setStatusCode(Response::STATUS_CODE_BAD_REQUEST) - ->json([ - 'status' => 'error', - 'message' => $e->getMessage() - ]); + throw new Exception(Exception::GENERAL_SERVER_ERROR, $e->getMessage()); } }); @@ -456,7 +451,7 @@ App::post('/v1/migrations/nhost') ->label('sdk.namespace', 'migrations') ->label('sdk.method', 'migrateNHost') ->label('sdk.description', '/docs/references/migrations/migration-nhost.md') - ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MIGRATION) ->param('resources', [], new ArrayList(new WhiteList(NHost::getSupportedResources())), 'List of resources to migrate') @@ -508,7 +503,7 @@ App::post('/v1/migrations/nhost') ->dynamic($migration, Response::MODEL_MIGRATION); }); -App::post('/v1/migrations/nhost/report') +App::get('/v1/migrations/nhost/report') ->groups(['api', 'migrations']) ->desc('Generate a report on NHost Data') ->label('scope', 'migrations.write') @@ -516,7 +511,7 @@ App::post('/v1/migrations/nhost/report') // ->label('audits.event', 'migration.report') ->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'migrations') - ->label('sdk.method', 'generateNHostReport') + ->label('sdk.method', 'getNHostReport') ->label('sdk.description', '/docs/references/migrations/migration-nhost-report.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) @@ -542,13 +537,6 @@ App::post('/v1/migrations/nhost/report') ->setStatusCode(Response::STATUS_CODE_CREATED) ->dynamic(new Document($nhost->report($resources)), Response::MODEL_MIGRATION_REPORT); } catch (\Exception $e) { - var_dump($e->getMessage()); - - $response - ->setStatusCode(Response::STATUS_CODE_BAD_REQUEST) - ->json([ - 'status' => 'error', - 'message' => $e->getMessage() - ]); + throw new Exception(Exception::GENERAL_SERVER_ERROR, $e->getMessage()); } }); diff --git a/composer.lock b/composer.lock index 691e05ba92..bddd299aec 100644 --- a/composer.lock +++ b/composer.lock @@ -2942,12 +2942,12 @@ "source": { "type": "git", "url": "https://github.com/utopia-php/transfer.git", - "reference": "813901b1b70cea0d382d67f417b6bfe2fd1bd165" + "reference": "c7bae26f5672203e1228e237b29abaa05d105055" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/transfer/zipball/813901b1b70cea0d382d67f417b6bfe2fd1bd165", - "reference": "813901b1b70cea0d382d67f417b6bfe2fd1bd165", + "url": "https://api.github.com/repos/utopia-php/transfer/zipball/c7bae26f5672203e1228e237b29abaa05d105055", + "reference": "c7bae26f5672203e1228e237b29abaa05d105055", "shasum": "" }, "require": { @@ -2996,7 +2996,7 @@ "source": "https://github.com/utopia-php/transfer/tree/feat-improve-features", "issues": "https://github.com/utopia-php/transfer/issues" }, - "time": "2023-07-18T08:34:11+00:00" + "time": "2023-07-20T10:33:10+00:00" }, { "name": "utopia-php/websocket",