import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { BehaviorSubject, Observable, tap } from 'rxjs'; import { Activity } from 'app/modules/admin/pages/activities/activities.types'; @Injectable({ providedIn: 'root' }) export class ActivitiesService { // Private private _activities: BehaviorSubject = new BehaviorSubject(null); /** * Constructor */ constructor(private _httpClient: HttpClient) { } // ----------------------------------------------------------------------------------------------------- // @ Accessors // ----------------------------------------------------------------------------------------------------- /** * Getter for activities */ get activities(): Observable { return this._activities.asObservable(); } // ----------------------------------------------------------------------------------------------------- // @ Public methods // ----------------------------------------------------------------------------------------------------- /** * Get activities */ getActivities(): Observable { return this._httpClient.get('api/pages/activities').pipe( tap((response: Activity[]) => { this._activities.next(response); }) ); } }