diff --git a/src/Umbraco.Web.UI.Client/schemas/generated-schema.ts b/src/Umbraco.Web.UI.Client/schemas/generated-schema.ts index 4d21f5ae7a..664b9b012f 100644 --- a/src/Umbraco.Web.UI.Client/schemas/generated-schema.ts +++ b/src/Umbraco.Web.UI.Client/schemas/generated-schema.ts @@ -19,6 +19,12 @@ export interface paths { "/server/version": { get: operations["GetVersion"]; }; + "/upgrade/settings": { + get: operations["GetUpgradeSettings"]; + }; + "/upgrade/authorize": { + post: operations["PostUpgradeAuthorize"]; + }; "/user": { get: operations["GetUser"]; }; @@ -107,6 +113,13 @@ export interface components { VersionResponse: { version: string; }; + UpgradeSettingsResponse: { + currentState: string; + newState: string; + newVersion: string; + oldVersion: string; + reportUrl: string; + }; UserResponse: { username: string; role: string; @@ -207,6 +220,35 @@ export interface operations { }; }; }; + GetUpgradeSettings: { + responses: { + /** 200 response */ + 200: { + content: { + "application/json": components["schemas"]["UpgradeSettingsResponse"]; + }; + }; + /** default response */ + default: { + content: { + "application/json": components["schemas"]["ProblemDetails"]; + }; + }; + }; + }; + PostUpgradeAuthorize: { + parameters: {}; + responses: { + /** 201 response */ + 201: unknown; + /** 400 response */ + 400: { + content: { + "application/json": components["schemas"]["ProblemDetails"]; + }; + }; + }; + }; GetUser: { responses: { /** 200 response */ diff --git a/src/Umbraco.Web.UI.Client/src/core/models/index.ts b/src/Umbraco.Web.UI.Client/src/core/models/index.ts index 433bb3c220..c13524064c 100644 --- a/src/Umbraco.Web.UI.Client/src/core/models/index.ts +++ b/src/Umbraco.Web.UI.Client/src/core/models/index.ts @@ -7,6 +7,7 @@ export type ProblemDetails = components['schemas']['ProblemDetails']; export type UserResponse = components['schemas']['UserResponse']; export type AllowedSectionsResponse = components['schemas']['AllowedSectionsResponse']; export type UmbracoInstaller = components['schemas']['InstallSettingsResponse']; +export type UmbracoUpgrader = components['schemas']['UpgradeSettingsResponse']; // Models export type UmbracoPerformInstallDatabaseConfiguration = components['schemas']['InstallSetupDatabaseConfiguration']; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/domains/upgrade.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/domains/upgrade.handlers.ts new file mode 100644 index 0000000000..7cecf1a4bb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/domains/upgrade.handlers.ts @@ -0,0 +1,28 @@ +import { rest } from 'msw'; + +import { PostInstallRequest, UmbracoUpgrader } from '../../core/models'; + +export const handlers = [ + rest.get('/umbraco/backoffice/upgrade/settings', (_req, res, ctx) => { + return res( + // Respond with a 200 status code + ctx.status(200), + ctx.json({ + currentState: '2b20c6e7', + newState: '2b20c6e8', + oldVersion: '13.0.0', + newVersion: '13.1.0', + reportUrl: 'https://our.umbraco.com/download/releases/1000', + }) + ); + }), + + rest.post('/umbraco/backoffice/upgrade/authorize', async (_req, res, ctx) => { + await new Promise((resolve) => setTimeout(resolve, (Math.random() + 1) * 1000)); // simulate a delay of 1-2 seconds + + return res( + // Respond with a 200 status code + ctx.status(201) + ); + }), +];