make logout callback async

This commit is contained in:
Kyle Spearrin 2018-05-15 23:40:15 -04:00
parent 7112911cb8
commit 799c90af17
4 changed files with 5 additions and 8 deletions

View File

@ -20,7 +20,6 @@ export abstract class ApiService {
baseUrl: string;
identityBaseUrl: string;
deviceType: string;
logoutCallback: Function;
setUrls: (urls: EnvironmentUrls) => void;
postIdentityToken: (request: TokenRequest) => Promise<IdentityTokenResponse | IdentityTwoFactorResponse>;

View File

@ -27,11 +27,9 @@ export class ApiService implements ApiServiceAbstraction {
baseUrl: string;
identityBaseUrl: string;
deviceType: string;
logoutCallback: Function;
constructor(private tokenService: TokenService, private platformUtilsService: PlatformUtilsService,
logoutCallback: Function) {
this.logoutCallback = logoutCallback;
private logoutCallback: (expired: boolean) => Promise<void>) {
this.deviceType = platformUtilsService.getDevice().toString();
}
@ -425,7 +423,7 @@ export class ApiService implements ApiServiceAbstraction {
private async handleError(response: Response, tokenError: boolean): Promise<ErrorResponse> {
if ((tokenError && response.status === 400) || response.status === 401 || response.status === 403) {
this.logoutCallback(true);
await this.logoutCallback(true);
return null;
}

View File

@ -12,7 +12,7 @@ import { TokenService } from '../abstractions/token.service';
export class NodeApiService extends ApiService {
constructor(tokenService: TokenService, platformUtilsService: PlatformUtilsService,
logoutCallback: Function) {
logoutCallback: (expired: boolean) => Promise<void>) {
super(tokenService, platformUtilsService, logoutCallback);
}
}

View File

@ -30,7 +30,7 @@ export class SyncService implements SyncServiceAbstraction {
private settingsService: SettingsService, private folderService: FolderService,
private cipherService: CipherService, private cryptoService: CryptoService,
private collectionService: CollectionService, private storageService: StorageService,
private messagingService: MessagingService, private logoutCallback: Function) {
private messagingService: MessagingService, private logoutCallback: (expired: boolean) => Promise<void>) {
}
async getLastSync(): Promise<Date> {
@ -134,7 +134,7 @@ export class SyncService implements SyncServiceAbstraction {
const stamp = await this.userService.getSecurityStamp();
if (stamp != null && stamp !== response.securityStamp) {
if (this.logoutCallback != null) {
this.logoutCallback(true);
await this.logoutCallback(true);
}
throw new Error('Stamp has changed');