a697aba1b0
Introduce some missing models along the way
33 lines
674 B
JavaScript
33 lines
674 B
JavaScript
'use strict';
|
|
|
|
const events = require('../events.js');
|
|
const Post = require('./post.js');
|
|
|
|
class PostList extends events.EventTarget {
|
|
constructor(posts) {
|
|
super();
|
|
this._list = [];
|
|
}
|
|
|
|
static fromResponse(postsResponse) {
|
|
const postList = new PostList();
|
|
for (let postResponse of postsResponse) {
|
|
postList._list.push(Post.fromResponse(postResponse));
|
|
}
|
|
return postList;
|
|
}
|
|
|
|
get posts() {
|
|
return [...this._list];
|
|
}
|
|
|
|
get length() {
|
|
return this._list.length;
|
|
}
|
|
|
|
[Symbol.iterator]() {
|
|
return this._list[Symbol.iterator]();
|
|
}
|
|
}
|
|
|
|
module.exports = PostList;
|