mirror of
https://github.com/xuthus83/pigallery2.git
synced 2024-11-03 21:04:03 +08:00
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
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<PersonDTO[]>;
|
|
|
|
constructor(private networkService: NetworkService) {
|
|
this.persons = new BehaviorSubject<PersonDTO[]>([]);
|
|
}
|
|
|
|
public async setFavourite(person: PersonDTO, isFavourite: boolean): Promise<void> {
|
|
const updated = await this.networkService.postJson<PersonDTO>('/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<PersonDTO[]>('/person')).sort((a, b) => a.name.localeCompare(b.name)));
|
|
}
|
|
|
|
}
|