aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/services/user.ts
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-01-09 01:07:35 +0800
committercrupest <crupest@outlook.com>2021-01-09 01:07:35 +0800
commit8edf6d566cecd94d251a4e29ae8c35b77f88d6db (patch)
tree0e4371f4a40fabaf5c87baca491d2631665cd2ae /FrontEnd/src/app/services/user.ts
parent777efa6e0405f4e871de4da21b939e30ed07f754 (diff)
downloadtimeline-8edf6d566cecd94d251a4e29ae8c35b77f88d6db.tar.gz
timeline-8edf6d566cecd94d251a4e29ae8c35b77f88d6db.tar.bz2
timeline-8edf6d566cecd94d251a4e29ae8c35b77f88d6db.zip
...
Diffstat (limited to 'FrontEnd/src/app/services/user.ts')
-rw-r--r--FrontEnd/src/app/services/user.ts30
1 files changed, 18 insertions, 12 deletions
diff --git a/FrontEnd/src/app/services/user.ts b/FrontEnd/src/app/services/user.ts
index 7a60b474..c3343493 100644
--- a/FrontEnd/src/app/services/user.ts
+++ b/FrontEnd/src/app/services/user.ts
@@ -5,7 +5,12 @@ import { map, filter } from "rxjs/operators";
import { UiLogicError } from "@/common";
import { convertError } from "@/utilities/rxjs";
-import { HttpNetworkError, BlobWithEtag, NotModified } from "@/http/common";
+import {
+ HttpNetworkError,
+ BlobWithEtag,
+ NotModified,
+ tokenSubject,
+} from "@/http/common";
import {
getHttpTokenClient,
HttpCreateTokenBadCredentialError,
@@ -61,6 +66,12 @@ export class BadCredentialError {
const USER_STORAGE_KEY = "currentuser";
export class UserService {
+ constructor() {
+ this.userSubject.subscribe((u) => {
+ tokenSubject.next(u?.token ?? null);
+ });
+ }
+
private userSubject = new BehaviorSubject<AuthUser | null | undefined>(
undefined
);
@@ -167,13 +178,10 @@ export class UserService {
throw new UiLogicError("Not login or checked now, can't log out.");
}
const $ = from(
- getHttpUserClient().changePassword(
- {
- oldPassword,
- newPassword,
- },
- this.currentUser.token
- )
+ getHttpUserClient().changePassword({
+ oldPassword,
+ newPassword,
+ })
);
$.subscribe(() => {
void this.logout();
@@ -378,15 +386,13 @@ export class UserInfoService {
}
async setAvatar(username: string, blob: Blob): Promise<void> {
- const user = checkLogin();
- await getHttpUserClient().putAvatar(username, blob, user.token);
+ await getHttpUserClient().putAvatar(username, blob);
this._avatarHub.getLine(username)?.next({ data: blob, type: "synced" });
}
async setNickname(username: string, nickname: string): Promise<void> {
- const user = checkLogin();
return getHttpUserClient()
- .patch(username, { nickname }, user.token)
+ .patch(username, { nickname })
.then((user) => {
this.saveUser(user);
});