import { inject, Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { lastValueFrom, map } from 'rxjs'; import { HttpPlainResponse, HttpResponse } from '@/core/models/response.interface'; import { Live } from './live.models'; @Injectable() export class LiveService { private http = inject(HttpClient); private route = `schedule`; getAllLiveEvents() { return this.http.get>(this.route).pipe(map(({ data }) => data ?? [])); } getLiveEvent(idx = 0) { return this.getAllLiveEvents().pipe(map((events) => events[idx])); } getCurrentEvent() { return this.http .get>(`${this.route}/current`) .pipe(map(({ data }) => data)); } saveTimeSession(session_id: number) { const request = this.http.post(`${this.route}/time_session`, { session_id, }); return lastValueFrom(request); } } export const injectLiveService = () => inject(LiveService);