open-learning-exchange/planet

View on GitHub
src/app/manager-dashboard/manager-sync.component.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Component, OnInit } from '@angular/core';
import { CouchService } from '../shared/couchdb.service';
import { DialogsLoadingService } from '../shared/dialogs/dialogs-loading.service';
import { forkJoin } from 'rxjs';

@Component({
  templateUrl: './manager-sync.component.html'
})

export class ManagerSyncComponent implements OnInit {

  replicators = [];

  constructor(
    private couchService: CouchService,
    private dialogsLoadingService: DialogsLoadingService
  ) {}

  ngOnInit() {
    this.getReplicators();
  }

  getReplicators() {
    this.dialogsLoadingService.start();
    forkJoin([
      this.couchService.get('_scheduler/docs'),
      this.couchService.findAll('_replicator')
    ])
    .subscribe(([ reps, data ]) => {
      const jobs = reps.docs.filter(replicator => replicator.database === '_replicator');
      this.replicators = data.map((rep: any) => ({ ...rep, ...jobs.find(n => n.doc_id === rep._id) }));
      this.dialogsLoadingService.stop();
    });
  }

}