cleanup some json code

This commit is contained in:
the-djmaze 2023-01-25 09:41:15 +01:00
parent f23b7205c6
commit 528b6cd096
5 changed files with 19 additions and 12 deletions

View file

@ -80,11 +80,9 @@ export class AbstractModel {
}
revivePropertiesFromJson(json) {
let model = this.constructor;
if (!model.validJson(json)) {
return false;
}
forEachObjectEntry(json, (key, value) => {
const model = this.constructor,
valid = model.validJson(json);
valid && forEachObjectEntry(json, (key, value) => {
if ('@' !== key[0]) try {
// key = key[0].toLowerCase() + key.slice(1);
switch (typeof this[key])
@ -103,9 +101,11 @@ export class AbstractModel {
this[key] = typeCast(this[key], value);
break;
case 'undefined':
console.log(`Undefined ${model.name}.${key} set`);
this[key] = value;
// fall through
default:
break;
// default:
// console.log((typeof this[key])+` ${model.name}.${key} not revived`);
// console.log((typeof this[key])+' '+(model.name)+'.'+key+' not revived');
}
} catch (e) {
@ -113,7 +113,7 @@ export class AbstractModel {
console.error(e);
}
});
return true;
return valid;
}
}

View file

@ -18,6 +18,7 @@ export class AttachmentModel extends AbstractModel {
this.checked = ko.observable(true);
this.mimeType = '';
// this.mimeTypeParams = '';
this.fileName = '';
this.fileNameExt = '';
this.fileType = FileType.Unknown;

View file

@ -74,6 +74,7 @@ export class MessageModel extends AbstractModel {
this.to = new EmailCollectionModel;
this.cc = new EmailCollectionModel;
this.bcc = new EmailCollectionModel;
this.sender = new EmailCollectionModel;
this.replyTo = new EmailCollectionModel;
this.deliveredTo = new EmailCollectionModel;
this.body = null;
@ -120,6 +121,11 @@ export class MessageModel extends AbstractModel {
readReceipt: '',
autocrypt: '',
// rfc8621
id: '',
// threadId: '',
hasUnseenSubMessage: false,
hasFlaggedSubMessage: false
});