All files / src/app/components/timetrack/services work-time.service.ts

63.63% Statements 7/11
0% Branches 0/6
20% Functions 1/5
60% Lines 6/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 604x 4x 4x 4x             4x 2x                                                                                                
import { HttpClient } from "@angular/common/http";
import { Injectable } from "@angular/core";
import { environment } from "@environment";
import { map, Observable } from "rxjs";
import { DateI } from "../date";
import { WorkTime } from "../work-time/work-time";
 
@Injectable({
    providedIn: "root",
})
export class WorkTimeService {
    constructor (private httpClient: HttpClient) { }
 
    getWorktime (date: DateI): Observable<WorkTime | undefined> {
        return this.httpClient.get(
            environment.apiUrl + "time",
            {
                withCredentials: true,
                params: {
                    date: `${date.year}-${date.month}-${date.day}`,
                },
            }
        ).pipe(map(data => data as WorkTime | undefined));
    }
  
    setWorktime (date: DateI, workTime: WorkTime) {
        return this.httpClient.post(
            environment.apiUrl + "time",
            {
                start: workTime.start ?? 0,
                end: workTime.end ?? 0,
                breaks: workTime.breaks ?? [],
                description: workTime.description,
                workType: workTime.workType,
                //Todo: Temporary fix as minutes are calculated by server
                workMinutes: 0,
                breakMinutes: 0,
            },
            {
                withCredentials: true,
                params: {
                    date: `${date.year}-${date.month}-${date.day}`,
                },
            }
        );
    }
 
    unsetWorktime (date: DateI) {
        return this.httpClient.delete(
            environment.apiUrl + "time",
            {
                withCredentials: true,
                params: {
                    date: `${date.year}-${date.month}-${date.day}`,
                },
            }
        );
    }
}