import { Injectable } from '@angular/core'; import {Task} from "../Interfaces/task.interface"; import {Subject} from "rxjs"; import {ApiService} from "./api.service"; @Injectable({ providedIn: 'root' }) export class TaskService{ taskSubject: Subject = new Subject() constructor(private apiService: ApiService) { } private generatePoints(min: number, max: number): number { return Math.floor(Math.random() * (max+1 - min) ) + min; } generateTask(data: Task): void{ let points: number = 0; switch (data.type){ case 'green': points = this.generatePoints(1,3) break; case 'blue': points = this.generatePoints(2,4) break; case 'red': points = this.generatePoints(5,7) } const returnData: Task = { title: data.title, type: data.type, description: data.description, score: points, date: data.date } this.apiService.storeCard(returnData).subscribe({ next: (data: Task): void => { this.fetchAllTasks() } }) } fetchAllTasks(): void{ this.apiService.getAllCards().subscribe({ next: (data: any): void => { this.taskSubject.next(data) } }) } sortTodaysCards(type: string): Task[]{ const filteredTasks: Task[] = []; this.apiService.getTodaysTasks().subscribe({ next: (data: Task[]): void => { data.forEach((task: Task): void=>{ if(task.type===type){ filteredTasks.push(task) } }) } }) return filteredTasks } }