2017-07-08 18:43:42 +08:00
|
|
|
import {Injectable} from "@angular/core";
|
|
|
|
import {NetworkService} from "../../model/network/network.service";
|
|
|
|
import {DataBaseConfig, IPrivateConfig} from "../../../../common/config/private/IPrivateConfig";
|
2017-07-09 18:03:17 +08:00
|
|
|
import {NavigationService} from "../../model/navigation.service";
|
|
|
|
import {UserRoles} from "../../../../common/entities/UserDTO";
|
|
|
|
import {AuthenticationService} from "../../model/network/authentication.service";
|
2017-07-08 18:43:42 +08:00
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
export class DatabaseSettingsService {
|
|
|
|
|
|
|
|
|
2017-07-09 18:03:17 +08:00
|
|
|
constructor(private _networkService: NetworkService, private _authService: AuthenticationService, private _navigation: NavigationService) {
|
|
|
|
|
|
|
|
if (!this._authService.isAuthenticated() ||
|
|
|
|
this._authService.user.value.role < UserRoles.Admin) {
|
|
|
|
this._navigation.toLogin();
|
|
|
|
return;
|
|
|
|
}
|
2017-07-08 18:43:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public async getSettings(): Promise<DataBaseConfig> {
|
|
|
|
return (await <Promise<IPrivateConfig>>this._networkService.getJson("/settings")).Server.database;
|
|
|
|
}
|
|
|
|
|
|
|
|
public updateSettings(settings): Promise<void> {
|
|
|
|
return this._networkService.putJson("/settings/database", {databaseSettings: settings});
|
|
|
|
}
|
|
|
|
|
|
|
|
public testSettings(settings): Promise<void> {
|
|
|
|
return this._networkService.postJson("/settings/test/database", {databaseSettings: settings});
|
|
|
|
}
|
|
|
|
}
|