1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/frontend/app/settings/database/database.settings.service.ts

33 lines
1.2 KiB
TypeScript
Raw Normal View History

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> {
2017-07-13 00:31:19 +08:00
return this._networkService.postJson<void>("/settings/test/database", {databaseSettings: settings});
2017-07-08 18:43:42 +08:00
}
}