update installer data

This commit is contained in:
Jacob Overgaard
2022-05-24 11:27:02 +02:00
parent 85b7ef4114
commit 2eaa5856c5
4 changed files with 173 additions and 274 deletions

View File

@@ -3,103 +3,88 @@ import { body, endpoint, request, response } from '@airtasker/spot';
import { ErrorResponse } from './models';
@endpoint({
method: 'GET',
path: '/install',
method: 'GET',
path: '/install',
})
export class GetInstall {
@response({ status: 200 })
success(@body body: UmbracoInstaller) { }
@response({ status: 200 })
success(@body body: UmbracoInstaller) {}
}
@endpoint({
method: 'POST',
path: '/install',
method: 'POST',
path: '/install',
})
export class PostInstall {
@request
request(@body body: UmbracoInstallerPerformInstallRequest) { }
@request
request(@body body: UmbracoPerformInstallRequest) {}
@response({ status: 201 })
success() { }
@response({ status: 201 })
success() {}
@response({ status: 400 })
badRequest(@body body: ErrorResponse) { }
@response({ status: 400 })
badRequest(@body body: ErrorResponse) {}
}
@endpoint({
method: 'POST',
path: '/install/database/validate'
method: 'POST',
path: '/install/database/validate',
})
export class PostInstallValidateDatabase {
@request
request(@body body: UmbracoInstallerDatabaseConfiguration) { }
@request
request(@body body: UmbracoPerformInstallDatabaseConfiguration) {}
@response({ status: 201 })
success() { }
@response({ status: 201 })
success() {}
@response({ status: 400 })
badRequest(@body body: ErrorResponse) { }
@response({ status: 400 })
badRequest(@body body: ErrorResponse) {}
}
export interface UmbracoInstallerPerformInstallRequest {
name: string;
email: string;
password: string;
subscribeToNewsletter: boolean;
telemetryLevel: 'Minimal' | 'Basic' | 'Detailed';
database: UmbracoInstallerDatabaseConfiguration;
export interface UmbracoPerformInstallRequest {
name: string;
email: string;
password: string;
subscribeToNewsletter: boolean;
telemetryLevel: ConsentLevel;
database: UmbracoPerformInstallDatabaseConfiguration;
}
export interface UmbracoInstallerDatabaseConfiguration {
connectionString: string;
providerName: string;
integratedAuth: boolean;
databaseProviderMetadataId: string;
export interface UmbracoPerformInstallDatabaseConfiguration {
connectionString: string;
providerName: string;
integratedAuth: boolean;
databaseProviderMetadataId: string;
}
export interface UmbracoInstaller {
installId: string;
steps: UmbracoInstallerStep[];
user: UmbracoInstallerUserModel;
databases: UmbracoInstallerDatabaseModel[];
}
export interface UmbracoInstallerStep {
model: UmbracoInstallerStepModel | null;
view: string;
name: string;
description: string;
serverOrder: number;
export interface UmbracoInstallerUserModel {
minCharLength: number;
minNonAlphaNumericLength: number;
consentLevels: TelemetryModel[];
}
export interface UmbracoInstallerStepModel {
minCharLength?: number;
minNonAlphaNumericLength?: number;
customInstallAvailable?: boolean;
consentLevels?: ConsentLevel[];
databases?: UmbracoDatabaseConfiguration[];
quickInstallSettings?: UmbracoDatabaseConfigurationQuickInstall;
export interface TelemetryModel {
level: ConsentLevel;
description: string;
}
export interface ConsentLevel {
level: 'Minimal' | 'Basic' | 'Detailed';
description: string;
export interface UmbracoInstallerDatabaseModel {
id: string;
sortOrder: number;
displayName: string;
defaultDatabaseName: string;
providerName: null | string;
isAvailable: boolean;
requiresServer: boolean;
serverPlaceholder: null | string;
requiresCredentials: boolean;
supportsIntegratedAuthentication: boolean;
requiresConnectionTest: boolean;
}
export interface UmbracoDatabaseConfiguration {
id: string;
sortOrder: number;
displayName: string;
defaultDatabaseName: string;
providerName: null | string;
supportsQuickInstall: boolean;
isAvailable: boolean;
requiresServer: boolean;
serverPlaceholder: null | string;
requiresCredentials: boolean;
supportsIntegratedAuthentication: boolean;
requiresConnectionTest: boolean;
}
export interface UmbracoDatabaseConfigurationQuickInstall {
displayName: string;
defaultDatabaseName: string;
}
export type ConsentLevel = 'Minimal' | 'Basic' | 'Detailed';