1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-01 09:13:54 +00:00

Member details model updates

This commit is contained in:
Leslie Tilton
2025-11-12 14:21:15 -06:00
parent 7989ad7b7c
commit ec77725790
4 changed files with 140 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
import { BaseResponse } from "@bitwarden/common/models/response/base.response";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetailsData } from "../data/member-details.data";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetails } from "../domain/member-details";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetailsView } from "../view/member-details.view";
/**
* Converts a MemberDetails API response
*
* - See {@link MemberDetails} for domain model
* - See {@link MemberDetailsData} for data model
* - See {@link MemberDetailsView} from View Model
*/
export class MemberDetailsApi extends BaseResponse {
userGuid: string;
userName: string;
email: string;
cipherId: string;
constructor(data: any = null) {
super(data);
if (data == null) {
return;
}
this.userGuid = this.getResponseProperty("userGuid");
this.userName = this.getResponseProperty("userName");
this.email = this.getResponseProperty("email");
this.cipherId = this.getResponseProperty("cipherId");
}
}

View File

@@ -0,0 +1,30 @@
import { MemberDetailsApi } from "../api/member-details.api";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetails } from "../domain/member-details";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetailsView } from "../view/member-details.view";
/**
* Serializable data model for member details in risk insights report
*
* - See {@link MemberDetails} for domain model
* - See {@link MemberDetailsApi} for API model
* - See {@link MemberDetailsView} from View Model
*/
export class MemberDetailsData {
userGuid: string;
userName: string;
email: string;
cipherId: string;
constructor(data?: MemberDetailsApi) {
if (data == null) {
return;
}
this.userGuid = data.userGuid;
this.userName = data.userName;
this.email = data.email;
this.cipherId = data.cipherId;
}
}

View File

@@ -0,0 +1,34 @@
import { EncString } from "@bitwarden/common/key-management/crypto/models/enc-string";
import Domain from "@bitwarden/common/platform/models/domain/domain-base";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetailsApi } from "../api/member-details.api";
import { MemberDetailsData } from "../data/member-details.data";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetailsView } from "../view/member-details.view";
/**
* Domain model for Member Details in Risk Insights containing encrypted properties
*
* - See {@link MemberDetailsApi} for API model
* - See {@link MemberDetailsData} for data model
* - See {@link MemberDetailsView} from View Model
*/
export class MemberDetails extends Domain {
userGuid: EncString = new EncString("");
userName: EncString = new EncString("");
email: EncString = new EncString("");
cipherId: EncString = new EncString("");
constructor(data?: MemberDetailsData) {
super();
if (data == null) {
return;
}
this.userGuid = new EncString(data.userGuid);
this.userName = new EncString(data.userName);
this.email = new EncString(data.email);
this.cipherId = new EncString(data.cipherId);
}
}

View File

@@ -0,0 +1,43 @@
import { Jsonify } from "type-fest";
import { View } from "@bitwarden/common/models/view/view";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetailsApi } from "../api/member-details.api";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { MemberDetailsData } from "../data/member-details.data";
import { MemberDetails } from "../domain/member-details";
/**
* View model for Member Details in Risk Insights containing decrypted properties
*
* - See {@link MemberDetails} for domain model
* - See {@link MemberDetailsData} for data model
* - See {@link MemberDetailsApi} for API model
*/
export class MemberDetailsView implements View {
userGuid: string = "";
userName: string = "";
email: string = "";
cipherId: string = "";
constructor(m?: MemberDetails) {
if (m == null) {
return;
}
}
toJSON() {
return this;
}
static fromJSON(
obj: Partial<Jsonify<MemberDetailsView>> | undefined,
): MemberDetailsView | undefined {
return Object.assign(new MemberDetailsView(), obj);
}
// [TODO] SDK Mapping
// toSdkMemberDetailsView(): SdkMemberDetailsView {}
// static fromMemberDetailsView(obj?: SdkMemberDetailsView): MemberDetailsView | undefined {}
}