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`; // now = Math.floor(Date.now() / 1000); getAllLiveEvents() { return this.http.get>(this.route).pipe(map(({ data }) => data)); } getLiveEvent(idx = 0) { return this.getAllLiveEvents().pipe(map((data) => data[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); } // testEvents() { // return this.getAllLiveEvents().pipe( // map((events) => { // const now = Math.floor(Date.now() / 1000); // events[0] = { // ...events[0], // start_unix_time: this.now + 30, // end_unix_time: this.now + 60, // current: now >= this.now + 30 && now <= this.now + 60 ? 1 : 0, // }; // return events; // }) // ); // } } export const injectLiveService = () => inject(LiveService);