diff --git a/src/models/request/cardRequest.ts b/src/models/request/cardRequest.ts index 4b1bd30983..a0680b1e52 100644 --- a/src/models/request/cardRequest.ts +++ b/src/models/request/cardRequest.ts @@ -1,3 +1,5 @@ +import { CardView } from 'jslib/models/view'; + export class CardRequest { static template(): CardRequest { var req = new CardRequest(); @@ -10,6 +12,17 @@ export class CardRequest { return req; } + static toView(req: CardRequest) { + const view = new CardView(); + view.cardholderName = req.cardholderName; + view.brand = req.brand; + view.number = req.number; + view.expMonth = req.expMonth; + view.expYear = req.expYear; + view.code = req.code; + return view; + } + cardholderName: string; brand: string; number: string; diff --git a/src/models/request/cipherRequest.ts b/src/models/request/cipherRequest.ts index 736317dbfa..bd482f98ce 100644 --- a/src/models/request/cipherRequest.ts +++ b/src/models/request/cipherRequest.ts @@ -27,7 +27,32 @@ export class CipherRequest { static toView(req: CipherRequest) { const view = new CipherView(); + view.type = req.type; + view.folderId = req.folderId; + view.organizationId = req.organizationId; view.name = req.name; + view.notes = req.notes; + view.favorite = req.favorite; + + if (req.fields != null) { + view.fields = req.fields.map((f) => FieldRequest.toView(f)); + } + + switch (req.type) { + case CipherType.Login: + view.login = LoginRequest.toView(req.login); + break; + case CipherType.SecureNote: + view.secureNote = SecureNoteRequest.toView(req.secureNote); + break; + case CipherType.Card: + view.card = CardRequest.toView(req.card); + break; + case CipherType.Identity: + view.identity = IdentityRequest.toView(req.identity); + break; + } + return view; } diff --git a/src/models/request/fieldRequest.ts b/src/models/request/fieldRequest.ts index 9eb92b5b44..33041f2c8c 100644 --- a/src/models/request/fieldRequest.ts +++ b/src/models/request/fieldRequest.ts @@ -1,4 +1,5 @@ import { FieldType } from 'jslib/enums/fieldType'; +import { FieldView } from 'jslib/models/view'; export class FieldRequest { static template(): FieldRequest { @@ -9,6 +10,14 @@ export class FieldRequest { return req; } + static toView(req: FieldRequest) { + const view = new FieldView(); + view.type = req.type; + view.value = req.value; + view.name = req.name; + return view; + } + name: string; value: string; type: FieldType; diff --git a/src/models/request/identityRequest.ts b/src/models/request/identityRequest.ts index 0914d78567..0824e52f3c 100644 --- a/src/models/request/identityRequest.ts +++ b/src/models/request/identityRequest.ts @@ -1,3 +1,5 @@ +import { IdentityView } from 'jslib/models/view'; + export class IdentityRequest { static template(): IdentityRequest { var req = new IdentityRequest(); @@ -22,6 +24,29 @@ export class IdentityRequest { return req; } + static toView(req: IdentityRequest) { + const view = new IdentityView(); + view.title = req.title; + view.firstName = req.firstName; + view.middleName = req.middleName; + view.lastName = req.lastName; + view.address1 = req.address1; + view.address2 = req.address2; + view.address3 = req.address3; + view.city = req.city; + view.state = req.state; + view.postalCode = req.postalCode; + view.country = req.country; + view.company = req.company; + view.email = req.email; + view.phone = req.phone; + view.ssn = req.ssn; + view.username = req.username; + view.passportNumber = req.passportNumber; + view.licenseNumber = req.licenseNumber; + return view; + } + title: string; firstName: string; middleName: string; diff --git a/src/models/request/loginRequest.ts b/src/models/request/loginRequest.ts index e7bfb048e9..90511a4e67 100644 --- a/src/models/request/loginRequest.ts +++ b/src/models/request/loginRequest.ts @@ -1,5 +1,7 @@ import { LoginUriRequest } from './loginUriRequest'; +import { LoginView } from 'jslib/models/view'; + export class LoginRequest { static template(): LoginRequest { var req = new LoginRequest(); @@ -10,6 +12,17 @@ export class LoginRequest { return req; } + static toView(req: LoginRequest) { + const view = new LoginView(); + if (req.uris != null) { + view.uris = req.uris.map((u) => LoginUriRequest.toView(u)); + } + view.username = req.username; + view.password = req.password; + view.totp = req.totp; + return view; + } + uris: LoginUriRequest[]; username: string; password: string; diff --git a/src/models/request/loginUriRequest.ts b/src/models/request/loginUriRequest.ts index d848a5ad70..a354d4703d 100644 --- a/src/models/request/loginUriRequest.ts +++ b/src/models/request/loginUriRequest.ts @@ -1,4 +1,5 @@ import { UriMatchType } from 'jslib/enums/uriMatchType'; +import { LoginUriView } from 'jslib/models/view/loginUriView'; export class LoginUriRequest { static template(): LoginUriRequest { @@ -8,6 +9,13 @@ export class LoginUriRequest { return req; } + static toView(req: LoginUriRequest) { + const view = new LoginUriView(); + view.uri = req.uri; + view.match = req.match + return view; + } + uri: string; match: UriMatchType = null; } diff --git a/src/models/request/secureNoteRequest.ts b/src/models/request/secureNoteRequest.ts index 8481009ed7..feeec64b77 100644 --- a/src/models/request/secureNoteRequest.ts +++ b/src/models/request/secureNoteRequest.ts @@ -1,4 +1,5 @@ import { SecureNoteType } from 'jslib/enums/secureNoteType'; +import { SecureNoteView } from 'jslib/models/view/secureNoteView'; export class SecureNoteRequest { static template(): SecureNoteRequest { @@ -7,5 +8,11 @@ export class SecureNoteRequest { return req; } + static toView(req: SecureNoteRequest) { + const view = new SecureNoteView(); + view.type = req.type; + return view; + } + type: SecureNoteType; }