mirror of
https://github.com/bitwarden/jslib
synced 2025-12-17 16:53:20 +00:00
move export models to jslib
This commit is contained in:
100
src/models/export/cipher.ts
Normal file
100
src/models/export/cipher.ts
Normal file
@@ -0,0 +1,100 @@
|
||||
import { CipherType } from '../../enums/cipherType';
|
||||
|
||||
import { CipherView } from '../view/cipherView';
|
||||
|
||||
import { Card } from './card';
|
||||
import { Field } from './field';
|
||||
import { Identity } from './identity';
|
||||
import { Login } from './login';
|
||||
import { SecureNote } from './secureNote';
|
||||
|
||||
export class Cipher {
|
||||
static template(): Cipher {
|
||||
const req = new Cipher();
|
||||
req.organizationId = null;
|
||||
req.folderId = null;
|
||||
req.type = CipherType.Login;
|
||||
req.name = 'Item name';
|
||||
req.notes = 'Some notes about this item.';
|
||||
req.favorite = false;
|
||||
req.fields = [];
|
||||
req.login = null;
|
||||
req.secureNote = null;
|
||||
req.card = null;
|
||||
req.identity = null;
|
||||
return req;
|
||||
}
|
||||
|
||||
static toView(req: Cipher, view = new CipherView()) {
|
||||
view.type = req.type;
|
||||
view.folderId = req.folderId;
|
||||
if (view.organizationId == null) {
|
||||
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) => Field.toView(f));
|
||||
}
|
||||
|
||||
switch (req.type) {
|
||||
case CipherType.Login:
|
||||
view.login = Login.toView(req.login);
|
||||
break;
|
||||
case CipherType.SecureNote:
|
||||
view.secureNote = SecureNote.toView(req.secureNote);
|
||||
break;
|
||||
case CipherType.Card:
|
||||
view.card = Card.toView(req.card);
|
||||
break;
|
||||
case CipherType.Identity:
|
||||
view.identity = Identity.toView(req.identity);
|
||||
break;
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
type: CipherType;
|
||||
folderId: string;
|
||||
organizationId: string;
|
||||
name: string;
|
||||
notes: string;
|
||||
favorite: boolean;
|
||||
fields: Field[];
|
||||
login: Login;
|
||||
secureNote: SecureNote;
|
||||
card: Card;
|
||||
identity: Identity;
|
||||
|
||||
// Use build method instead of ctor so that we can control order of JSON stringify for pretty print
|
||||
build(o: CipherView) {
|
||||
this.organizationId = o.organizationId;
|
||||
this.folderId = o.folderId;
|
||||
this.type = o.type;
|
||||
this.name = o.name;
|
||||
this.notes = o.notes;
|
||||
this.favorite = o.favorite;
|
||||
|
||||
if (o.fields != null) {
|
||||
this.fields = o.fields.map((f) => new Field(f));
|
||||
}
|
||||
|
||||
switch (o.type) {
|
||||
case CipherType.Login:
|
||||
this.login = new Login(o.login);
|
||||
break;
|
||||
case CipherType.SecureNote:
|
||||
this.secureNote = new SecureNote(o.secureNote);
|
||||
break;
|
||||
case CipherType.Card:
|
||||
this.card = new Card(o.card);
|
||||
break;
|
||||
case CipherType.Identity:
|
||||
this.identity = new Identity(o.identity);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user