import {Injectable} from '@angular/core'; import {NetworkService} from '../../model/network/network.service'; import {BehaviorSubject} from 'rxjs'; import {PersonDTO} from '../../../../common/entities/PersonDTO'; @Injectable() export class FacesService { public persons: BehaviorSubject; constructor(private networkService: NetworkService) { this.persons = new BehaviorSubject([]); } public async setFavourite(person: PersonDTO, isFavourite: boolean): Promise { const updated = await this.networkService.postJson('/person/' + person.name, {isFavourite: isFavourite}); const updatesList = this.persons.getValue(); for (let i = 0; i < updatesList.length; i++) { if (updatesList[i].id === updated.id) { updatesList[i] = updated; this.persons.next(updatesList); return; } } } public async getPersons() { this.persons.next((await this.networkService.getJson('/person')).sort((a, b) => a.name.localeCompare(b.name))); } }