import { Injectable } from '@angular/core'; import { HttpClient, HttpResponse } from '@angular/common/http'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import * as moment from 'moment'; import { environment } from '@env/environment'; type EntityResponseType = HttpResponse; @Injectable({ providedIn: 'root' }) export class ContractService { constructor(protected http: HttpClient) {} find(id: string): Observable { return this.http .get(`${environment.apiUrl}/api/contracts/${id}`, { observe: 'response' }) .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); } saveContractHistory(contractId: string, stepId: string): Observable { return this.http .post(`${environment.apiUrl}/api/contract-histories/save/${contractId}/${stepId}`, { observe: 'response' }) .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); } protected convertDateFromServer(res: EntityResponseType): EntityResponseType { if (res.body) { res.body.signatureDate = res.body.signatureDate ? moment(res.body.signatureDate) : undefined; res.body.effectiveDate = res.body.effectiveDate ? moment(res.body.effectiveDate) : undefined; res.body.currentStepSince = res.body.currentStepSince ? moment(res.body.currentStepSince) : undefined; } return res; } }