refactor(ListWrapper): get ride of ListWrapper.map

This commit is contained in:
Victor Berchet
2015-10-06 18:00:42 -07:00
parent b6537ad609
commit aaa215514b
24 changed files with 79 additions and 104 deletions

View File

@ -9,10 +9,15 @@ import {
RouteParams
} from 'angular2/router';
import * as db from './data';
import {ObservableWrapper, PromiseWrapper} from 'angular2/src/core/facade/async';
import {ObservableWrapper, PromiseWrapper, Promise} from 'angular2/src/core/facade/async';
import {ListWrapper} from 'angular2/src/core/facade/collection';
import {isPresent} from 'angular2/src/core/facade/lang';
interface RecordData {
id: string, subject: string, content: string, email: string, firstName: string, lastName: string,
date: string, draft?: boolean
}
class InboxRecord {
id: string = '';
subject: string = '';
@ -23,29 +28,13 @@ class InboxRecord {
date: string = '';
draft: boolean = false;
constructor(data: {
id: string,
subject: string,
content: string,
email: string,
firstName: string,
lastName: string,
date: string, draft?: boolean
} = null) {
constructor(data: RecordData = null) {
if (isPresent(data)) {
this.setData(data);
}
}
setData(record: {
id: string,
subject: string,
content: string,
email: string,
firstName: string,
lastName: string,
date: string, draft?: boolean
}) {
setData(record: RecordData) {
this.id = record['id'];
this.subject = record['subject'];
this.content = record['content'];
@ -53,32 +42,32 @@ class InboxRecord {
this.firstName = record['first-name'];
this.lastName = record['last-name'];
this.date = record['date'];
this.draft = record['draft'] == true ? true : false;
this.draft = record['draft'] == true;
}
}
@Injectable()
class DbService {
getData() {
getData(): Promise<RecordData[]> {
var p = PromiseWrapper.completer();
p.resolve(db.data);
return p.promise;
}
drafts() {
drafts(): Promise<RecordData[]> {
return PromiseWrapper.then(this.getData(), (data) => {
return ListWrapper.filter(data,
(record => isPresent(record['draft']) && record['draft'] == true));
});
}
emails() {
emails(): Promise<RecordData[]> {
return PromiseWrapper.then(this.getData(), (data) => {
return ListWrapper.filter(data, (record => !isPresent(record['draft'])));
});
}
email(id) {
email(id): Promise<RecordData> {
return PromiseWrapper.then(this.getData(), (data) => {
for (var i = 0; i < data.length; i++) {
var entry = data[i];
@ -109,9 +98,9 @@ class InboxCmp {
ready: boolean = false;
constructor(public router: Router, db: DbService) {
PromiseWrapper.then(db.emails(), (emails) => {
PromiseWrapper.then(db.emails(), emails => {
this.ready = true;
this.items = ListWrapper.map(emails, (email) => { return new InboxRecord(email); });
this.items = emails.map(data => new InboxRecord(data));
});
}
}
@ -126,7 +115,7 @@ class DraftsCmp {
constructor(public router: Router, db: DbService) {
PromiseWrapper.then(db.drafts(), (drafts) => {
this.ready = true;
this.items = ListWrapper.map(drafts, (email) => { return new InboxRecord(email); });
this.items = drafts.map(data => new InboxRecord(data));
});
}
}