// vim: set tw=80 ts=2 sw=2 sts=2: import { Injectable } from '@angular/core'; import { DataSource } from '@angular/cdk/collections'; import { Observable } from 'rxjs/Rx'; import { Account } from './account'; import { AccountBalances } from './accountBalances'; import { AccountBalancesService } from './accountBalances.service'; import { AccountService } from './account.service'; @Injectable() export class AccountDataSource extends DataSource { constructor( private accountService: AccountService, private accountBalancesService: AccountBalancesService, ) { super(); } connect(): Observable { return this.accountService.query().map((accounts: Account[]) => { for(let account of accounts) { this.accountBalancesService .get(account.id) .subscribe((accountBalances: AccountBalances) => { account.balances = accountBalances; }) } return accounts; }); } disconnect() {} }