Create New Method for Setting Avatar Color from Sync (#8403)
This commit is contained in:
parent
1400ec9c16
commit
ec5c6b6797
|
@ -15,6 +15,17 @@ export abstract class AvatarService {
|
||||||
* @returns a promise that resolves when the avatar color is set
|
* @returns a promise that resolves when the avatar color is set
|
||||||
*/
|
*/
|
||||||
abstract setAvatarColor(color: string): Promise<void>;
|
abstract setAvatarColor(color: string): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Sets the avatar color for the given user, meant to be used via sync.
|
||||||
|
*
|
||||||
|
* @remarks This is meant to be used for getting an updated avatar color from
|
||||||
|
* the sync endpoint. If the user is changing their avatar color
|
||||||
|
* on device, you should instead call {@link setAvatarColor}.
|
||||||
|
*
|
||||||
|
* @param userId The user id for the user to set the avatar color for
|
||||||
|
* @param color The color to set the avatar color to
|
||||||
|
*/
|
||||||
|
abstract setSyncAvatarColor(userId: UserId, color: string): Promise<void>;
|
||||||
/**
|
/**
|
||||||
* Gets the avatar color of the specified user.
|
* Gets the avatar color of the specified user.
|
||||||
*
|
*
|
||||||
|
|
|
@ -27,6 +27,10 @@ export class AvatarService implements AvatarServiceAbstraction {
|
||||||
await this.stateProvider.setUserState(AVATAR_COLOR, avatarColor);
|
await this.stateProvider.setUserState(AVATAR_COLOR, avatarColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async setSyncAvatarColor(userId: UserId, color: string): Promise<void> {
|
||||||
|
await this.stateProvider.getUser(userId, AVATAR_COLOR).update(() => color);
|
||||||
|
}
|
||||||
|
|
||||||
getUserAvatarColor$(userId: UserId): Observable<string | null> {
|
getUserAvatarColor$(userId: UserId): Observable<string | null> {
|
||||||
return this.stateProvider.getUser(userId, AVATAR_COLOR).state$;
|
return this.stateProvider.getUser(userId, AVATAR_COLOR).state$;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import { SendData } from "../../../tools/send/models/data/send.data";
|
||||||
import { SendResponse } from "../../../tools/send/models/response/send.response";
|
import { SendResponse } from "../../../tools/send/models/response/send.response";
|
||||||
import { SendApiService } from "../../../tools/send/services/send-api.service.abstraction";
|
import { SendApiService } from "../../../tools/send/services/send-api.service.abstraction";
|
||||||
import { InternalSendService } from "../../../tools/send/services/send.service.abstraction";
|
import { InternalSendService } from "../../../tools/send/services/send.service.abstraction";
|
||||||
|
import { UserId } from "../../../types/guid";
|
||||||
import { CipherService } from "../../../vault/abstractions/cipher.service";
|
import { CipherService } from "../../../vault/abstractions/cipher.service";
|
||||||
import { FolderApiServiceAbstraction } from "../../../vault/abstractions/folder/folder-api.service.abstraction";
|
import { FolderApiServiceAbstraction } from "../../../vault/abstractions/folder/folder-api.service.abstraction";
|
||||||
import { InternalFolderService } from "../../../vault/abstractions/folder/folder.service.abstraction";
|
import { InternalFolderService } from "../../../vault/abstractions/folder/folder.service.abstraction";
|
||||||
|
@ -313,7 +314,7 @@ export class SyncService implements SyncServiceAbstraction {
|
||||||
await this.cryptoService.setPrivateKey(response.privateKey);
|
await this.cryptoService.setPrivateKey(response.privateKey);
|
||||||
await this.cryptoService.setProviderKeys(response.providers);
|
await this.cryptoService.setProviderKeys(response.providers);
|
||||||
await this.cryptoService.setOrgKeys(response.organizations, response.providerOrganizations);
|
await this.cryptoService.setOrgKeys(response.organizations, response.providerOrganizations);
|
||||||
await this.avatarService.setAvatarColor(response.avatarColor);
|
await this.avatarService.setSyncAvatarColor(response.id as UserId, response.avatarColor);
|
||||||
await this.stateService.setSecurityStamp(response.securityStamp);
|
await this.stateService.setSecurityStamp(response.securityStamp);
|
||||||
await this.stateService.setEmailVerified(response.emailVerified);
|
await this.stateService.setEmailVerified(response.emailVerified);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue