PS-1620 Move AccountService.delete to Internal (#3687)
* Move AccountService.delete to Internal * Remove unnecessary promise
This commit is contained in:
parent
dcc0a556a2
commit
da0a17a2b6
|
@ -1,7 +1,7 @@
|
||||||
import { Component } from "@angular/core";
|
import { Component } from "@angular/core";
|
||||||
import { FormBuilder } from "@angular/forms";
|
import { FormBuilder } from "@angular/forms";
|
||||||
|
|
||||||
import { AccountService } from "@bitwarden/common/abstractions/account/account.service.abstraction";
|
import { AccountApiService } from "@bitwarden/common/abstractions/account/account-api.service";
|
||||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
import { LogService } from "@bitwarden/common/abstractions/log.service";
|
import { LogService } from "@bitwarden/common/abstractions/log.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
|
@ -23,7 +23,7 @@ export class DeleteAccountComponent {
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private formBuilder: FormBuilder,
|
private formBuilder: FormBuilder,
|
||||||
private accountService: AccountService,
|
private accountApiService: AccountApiService,
|
||||||
private logService: LogService
|
private logService: LogService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ export class DeleteAccountComponent {
|
||||||
async submit() {
|
async submit() {
|
||||||
try {
|
try {
|
||||||
const verification = this.deleteForm.get("verification").value;
|
const verification = this.deleteForm.get("verification").value;
|
||||||
this.formPromise = this.accountService.delete(verification);
|
this.formPromise = this.accountApiService.deleteAccount(verification);
|
||||||
await this.formPromise;
|
await this.formPromise;
|
||||||
this.platformUtilsService.showToast(
|
this.platformUtilsService.showToast(
|
||||||
"success",
|
"success",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Component } from "@angular/core";
|
import { Component } from "@angular/core";
|
||||||
import { FormBuilder } from "@angular/forms";
|
import { FormBuilder } from "@angular/forms";
|
||||||
|
|
||||||
import { AccountService } from "@bitwarden/common/abstractions/account/account.service.abstraction";
|
import { AccountApiService } from "@bitwarden/common/abstractions/account/account-api.service";
|
||||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
import { LogService } from "@bitwarden/common/abstractions/log.service";
|
import { LogService } from "@bitwarden/common/abstractions/log.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
|
@ -22,14 +22,14 @@ export class DeleteAccountComponent {
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private formBuilder: FormBuilder,
|
private formBuilder: FormBuilder,
|
||||||
private accountService: AccountService,
|
private accountApiService: AccountApiService,
|
||||||
private logService: LogService
|
private logService: LogService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async submit() {
|
async submit() {
|
||||||
try {
|
try {
|
||||||
const verification = this.deleteForm.get("verification").value;
|
const verification = this.deleteForm.get("verification").value;
|
||||||
this.formPromise = this.accountService.delete(verification);
|
this.formPromise = this.accountApiService.deleteAccount(verification);
|
||||||
await this.formPromise;
|
await this.formPromise;
|
||||||
this.platformUtilsService.showToast(
|
this.platformUtilsService.showToast(
|
||||||
"success",
|
"success",
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import { Injector, LOCALE_ID, NgModule } from "@angular/core";
|
import { Injector, LOCALE_ID, NgModule } from "@angular/core";
|
||||||
|
|
||||||
import { AbstractEncryptService } from "@bitwarden/common/abstractions/abstractEncrypt.service";
|
import { AbstractEncryptService } from "@bitwarden/common/abstractions/abstractEncrypt.service";
|
||||||
import { AccountApiService as AccountApiServiceAbstraction } from "@bitwarden/common/abstractions/account/account-api.service.abstraction";
|
import { AccountApiService as AccountApiServiceAbstraction } from "@bitwarden/common/abstractions/account/account-api.service";
|
||||||
import { AccountService as AccountServiceAbstraction } from "@bitwarden/common/abstractions/account/account.service.abstraction";
|
import {
|
||||||
|
InternalAccountService,
|
||||||
|
AccountService as AccountServiceAbstraction,
|
||||||
|
} from "@bitwarden/common/abstractions/account/account.service";
|
||||||
import { AnonymousHubService as AnonymousHubServiceAbstraction } from "@bitwarden/common/abstractions/anonymousHub.service";
|
import { AnonymousHubService as AnonymousHubServiceAbstraction } from "@bitwarden/common/abstractions/anonymousHub.service";
|
||||||
import { ApiService as ApiServiceAbstraction } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService as ApiServiceAbstraction } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { AppIdService as AppIdServiceAbstraction } from "@bitwarden/common/abstractions/appId.service";
|
import { AppIdService as AppIdServiceAbstraction } from "@bitwarden/common/abstractions/appId.service";
|
||||||
|
@ -61,8 +64,8 @@ import { VaultTimeoutSettingsService as VaultTimeoutSettingsServiceAbstraction }
|
||||||
import { StateFactory } from "@bitwarden/common/factories/stateFactory";
|
import { StateFactory } from "@bitwarden/common/factories/stateFactory";
|
||||||
import { Account } from "@bitwarden/common/models/domain/account";
|
import { Account } from "@bitwarden/common/models/domain/account";
|
||||||
import { GlobalState } from "@bitwarden/common/models/domain/global-state";
|
import { GlobalState } from "@bitwarden/common/models/domain/global-state";
|
||||||
import { AccountApiService } from "@bitwarden/common/services/account/account-api.service";
|
import { AccountApiServiceImplementation } from "@bitwarden/common/services/account/account-api.service";
|
||||||
import { AccountService } from "@bitwarden/common/services/account/account.service";
|
import { AccountServiceImplementation } from "@bitwarden/common/services/account/account.service";
|
||||||
import { AnonymousHubService } from "@bitwarden/common/services/anonymousHub.service";
|
import { AnonymousHubService } from "@bitwarden/common/services/anonymousHub.service";
|
||||||
import { ApiService } from "@bitwarden/common/services/api.service";
|
import { ApiService } from "@bitwarden/common/services/api.service";
|
||||||
import { AppIdService } from "@bitwarden/common/services/appId.service";
|
import { AppIdService } from "@bitwarden/common/services/appId.service";
|
||||||
|
@ -257,18 +260,22 @@ import { AbstractThemingService } from "./theming/theming.service.abstraction";
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: AccountApiServiceAbstraction,
|
provide: AccountApiServiceAbstraction,
|
||||||
useClass: AccountApiService,
|
useClass: AccountApiServiceImplementation,
|
||||||
deps: [ApiServiceAbstraction],
|
deps: [
|
||||||
|
ApiServiceAbstraction,
|
||||||
|
UserVerificationServiceAbstraction,
|
||||||
|
LogService,
|
||||||
|
InternalAccountService,
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: AccountServiceAbstraction,
|
provide: AccountServiceAbstraction,
|
||||||
useClass: AccountService,
|
useClass: AccountServiceImplementation,
|
||||||
deps: [
|
deps: [MessagingServiceAbstraction, LogService],
|
||||||
AccountApiServiceAbstraction,
|
},
|
||||||
UserVerificationServiceAbstraction,
|
{
|
||||||
MessagingServiceAbstraction,
|
provide: InternalAccountService,
|
||||||
LogService,
|
useExisting: AccountServiceAbstraction,
|
||||||
],
|
|
||||||
},
|
},
|
||||||
{ provide: LogService, useFactory: () => new ConsoleLogService(false) },
|
{ provide: LogService, useFactory: () => new ConsoleLogService(false) },
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
import { Verification } from "../../types/verification";
|
||||||
|
|
||||||
|
export abstract class AccountApiService {
|
||||||
|
abstract deleteAccount(verification: Verification): Promise<void>;
|
||||||
|
}
|
|
@ -1,5 +0,0 @@
|
||||||
import { Verification } from "../../types/verification";
|
|
||||||
|
|
||||||
export abstract class AccountService {
|
|
||||||
abstract delete(verification: Verification): Promise<any>;
|
|
||||||
}
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
export abstract class AccountService {}
|
||||||
|
|
||||||
|
export abstract class InternalAccountService extends AccountService {
|
||||||
|
abstract delete(): void;
|
||||||
|
}
|
|
@ -1,11 +1,26 @@
|
||||||
import { AccountApiService as AccountApiServiceAbstraction } from "../../abstractions/account/account-api.service.abstraction";
|
import { AccountApiService } from "../../abstractions/account/account-api.service";
|
||||||
|
import { InternalAccountService } from "../../abstractions/account/account.service";
|
||||||
import { ApiService } from "../../abstractions/api.service";
|
import { ApiService } from "../../abstractions/api.service";
|
||||||
import { SecretVerificationRequest } from "../../models/request/secret-verification.request";
|
import { LogService } from "../../abstractions/log.service";
|
||||||
|
import { UserVerificationService } from "../../abstractions/userVerification/userVerification.service.abstraction";
|
||||||
|
import { Verification } from "../../types/verification";
|
||||||
|
|
||||||
export class AccountApiService implements AccountApiServiceAbstraction {
|
export class AccountApiServiceImplementation implements AccountApiService {
|
||||||
constructor(private apiService: ApiService) {}
|
constructor(
|
||||||
|
private apiService: ApiService,
|
||||||
|
private userVerificationService: UserVerificationService,
|
||||||
|
private logService: LogService,
|
||||||
|
private accountService: InternalAccountService
|
||||||
|
) {}
|
||||||
|
|
||||||
deleteAccount(request: SecretVerificationRequest): Promise<void> {
|
async deleteAccount(verification: Verification): Promise<void> {
|
||||||
return this.apiService.send("DELETE", "/accounts", request, true, false);
|
try {
|
||||||
|
const verificationRequest = await this.userVerificationService.buildRequest(verification);
|
||||||
|
await this.apiService.send("DELETE", "/accounts", verificationRequest, true, false);
|
||||||
|
this.accountService.delete();
|
||||||
|
} catch (e) {
|
||||||
|
this.logService.error(e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,12 @@
|
||||||
import { AccountApiService } from "../../abstractions/account/account-api.service.abstraction";
|
import { InternalAccountService } from "../../abstractions/account/account.service";
|
||||||
import { AccountService as AccountServiceAbstraction } from "../../abstractions/account/account.service.abstraction";
|
|
||||||
import { LogService } from "../../abstractions/log.service";
|
import { LogService } from "../../abstractions/log.service";
|
||||||
import { MessagingService } from "../../abstractions/messaging.service";
|
import { MessagingService } from "../../abstractions/messaging.service";
|
||||||
import { UserVerificationService } from "../../abstractions/userVerification/userVerification.service.abstraction";
|
|
||||||
import { Verification } from "../../types/verification";
|
|
||||||
|
|
||||||
export class AccountService implements AccountServiceAbstraction {
|
export class AccountServiceImplementation implements InternalAccountService {
|
||||||
constructor(
|
constructor(private messagingService: MessagingService, private logService: LogService) {}
|
||||||
private accountApiService: AccountApiService,
|
|
||||||
private userVerificationService: UserVerificationService,
|
|
||||||
private messagingService: MessagingService,
|
|
||||||
private logService: LogService
|
|
||||||
) {}
|
|
||||||
|
|
||||||
async delete(verification: Verification): Promise<void> {
|
async delete(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const verificationRequest = await this.userVerificationService.buildRequest(verification);
|
|
||||||
await this.accountApiService.deleteAccount(verificationRequest);
|
|
||||||
this.messagingService.send("logout");
|
this.messagingService.send("logout");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.logService.error(e);
|
this.logService.error(e);
|
||||||
|
|
Loading…
Reference in New Issue