diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts b/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts index 1f292f5af5..48fb1d9bf4 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts @@ -3,20 +3,50 @@ import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import { tryExecute } from '@umbraco-cms/backoffice/resources'; export class UmbServerConnection { - #serverUrl: string; - #serverStatus: RuntimeLevelModel = RuntimeLevelModel.UNKNOWN; - #connected = new UmbBooleanState(false); + #url: string; + #status: RuntimeLevelModel = RuntimeLevelModel.UNKNOWN; + + #isConnected = new UmbBooleanState(false); + isConnected = this.#isConnected.asObservable(); constructor(serverUrl: string) { - this.#serverUrl = serverUrl; + this.#url = serverUrl; } + /** + * Connects to the server. + * @memberof UmbServerConnection + */ async connect() { await this.#setStatus(); } + /** + * Gets the URL of the server. + * @return {*} + * @memberof UmbServerConnection + */ + getUrl() { + return this.#url; + } + + /** + * Gets the status of the server. + * @return {string} + * @memberof UmbServerConnection + */ getStatus() { - return this.#serverStatus; + if (!this.getIsConnected()) throw new Error('Server is not connected. Remember to await connect()'); + return this.#status; + } + + /** + * Checks if the server is connected. + * @return {boolean} + * @memberof UmbServerConnection + */ + getIsConnected() { + return this.#isConnected.getValue(); } async #setStatus() { @@ -25,7 +55,7 @@ export class UmbServerConnection { throw error; } - this.#connected.next(true); - this.#serverStatus = data?.serverStatus ?? RuntimeLevelModel.UNKNOWN; + this.#isConnected.next(true); + this.#status = data?.serverStatus ?? RuntimeLevelModel.UNKNOWN; } }