Let all the new CollectionModels use AbstractCollectionModel

This commit is contained in:
djmaze
2020-09-16 16:33:53 +02:00
parent 086a2c1927
commit 71f6fb25e5
5 changed files with 39 additions and 44 deletions

View File

@@ -1,3 +1,4 @@
import { AbstractCollectionModel } from 'Model/AbstractCollection';
import { MessageModel } from 'Model/Message';
import {
@@ -8,11 +9,11 @@ import {
'use strict';
class MessageCollectionModel extends Array
export class MessageCollectionModel extends AbstractCollectionModel
{
/*
constructor() {
super();
/*
this.Filtered
this.Folder
this.FolderHash
@@ -25,23 +26,20 @@ class MessageCollectionModel extends Array
this.Search
this.ThreadUid
this.UidNext
*/
}
*/
/**
* @param {?Object} json
* @returns {MessageCollectionModel}
*/
static reviveFromJson(collection, cached) {
if (collection
&& 'Collection/MessageCollection' === collection['@Object']
&& Array.isArray(collection['@Collection'])) {
const result = new MessageCollectionModel;
Object.entries(collection).forEach(([key, value]) => '@' !== key[0] && (result[key] = value));
static reviveFromJson(object, cached) {
const collection = this.getFromJSON(object, 'MessageCollection');
if (collection) {
const result = new MessageCollectionModel(object);
let newCount = 0;
collection['@Collection'].forEach(message => {
collection.forEach(message => {
if (message && 'Object/Message' === message['@Object']) {
message = MessageModel.newInstanceFromJson(message);
if (message) {
@@ -59,11 +57,7 @@ class MessageCollectionModel extends Array
}
});
// collection[@Count] == result.length
return result;
}
}
}
export { MessageCollectionModel, MessageCollectionModel as default };