mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-13 14:23:02 -05:00
feat(rxjs): refactor challenge 11
This commit is contained in:
@@ -1,23 +1,19 @@
|
||||
import { inject, Injectable } from '@angular/core';
|
||||
import { merge, mergeMap, Observable, of, take } from 'rxjs';
|
||||
import { merge, Observable, of } from 'rxjs';
|
||||
import { LocalDBService, TopicType } from './localDB.service';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class AppService {
|
||||
private dbService = inject(LocalDBService);
|
||||
|
||||
getAll$ = this.dbService.infos$;
|
||||
getAllInfo = this.dbService.infos;
|
||||
|
||||
deleteOldTopics(type: TopicType): Observable<boolean> {
|
||||
return this.dbService.searchByType(type).pipe(
|
||||
take(1),
|
||||
mergeMap((topicToDelete) =>
|
||||
topicToDelete.length > 0
|
||||
? topicToDelete
|
||||
.map((t) => this.dbService.deleteOneTopic(t.id))
|
||||
.reduce((acc, curr) => merge(acc, curr), of(true))
|
||||
: of(true),
|
||||
),
|
||||
);
|
||||
const infoByType = this.dbService.searchByType(type);
|
||||
return infoByType.length > 0
|
||||
? infoByType
|
||||
.map((t) => this.dbService.deleteOneTopic(t.id))
|
||||
.reduce((acc, curr) => merge(acc, curr), of(true))
|
||||
: of(true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user