33 lines
868 B
TypeScript
33 lines
868 B
TypeScript
import { EncString } from "../domain/encString";
|
|
import { Folder as FolderDomain } from "../domain/folder";
|
|
import { FolderView } from "../view/folderView";
|
|
|
|
export class FolderExport {
|
|
static template(): FolderExport {
|
|
const req = new FolderExport();
|
|
req.name = "Folder name";
|
|
return req;
|
|
}
|
|
|
|
static toView(req: FolderExport, view = new FolderView()) {
|
|
view.name = req.name;
|
|
return view;
|
|
}
|
|
|
|
static toDomain(req: FolderExport, domain = new FolderDomain()) {
|
|
domain.name = req.name != null ? new EncString(req.name) : null;
|
|
return domain;
|
|
}
|
|
|
|
name: string;
|
|
|
|
// Use build method instead of ctor so that we can control order of JSON stringify for pretty print
|
|
build(o: FolderView | FolderDomain) {
|
|
if (o instanceof FolderView) {
|
|
this.name = o.name;
|
|
} else {
|
|
this.name = o.name?.encryptedString;
|
|
}
|
|
}
|
|
}
|