import {Injectable} from '@angular/core'; import {LoginCredential} from '../../../../common/entities/LoginCredential'; import {NetworkService} from './network.service'; import {UserDTO} from '../../../../common/entities/UserDTO'; import {Config} from '../../../../common/config/public/Config'; import {ShareService} from '../../gallery/share.service'; @Injectable() export class UserService { constructor(private _networkService: NetworkService, private _shareService: ShareService) { } public logout(): Promise { return this._networkService.postJson('/user/logout'); } public login(credential: LoginCredential): Promise { return this._networkService.postJson('/user/login', {'loginCredential': credential}); } public async shareLogin(password: string): Promise { return this._networkService.postJson('/share/login?sk=' + this._shareService.getSharingKey(), {'password': password}); } public async getSessionUser(): Promise { await this._shareService.wait(); if (Config.Client.Sharing.enabled === true) { if (this._shareService.isSharing()) { return this._networkService.getJson('/user/login?sk=' + this._shareService.getSharingKey()); } } return this._networkService.getJson('/user/login'); } }