Как мне преобразовать полученные числа как Duration (JODA.js) в правильную форму Duration из JSON?
Есть следующая проблема:
Когда я получаю данные из своего Backend, Duration не будет правильно получен. Он будет инициализирован как число в секундах.
export class Booking {
id: number;
projectId: number;
userId: number;
bookedTime: Duration;
workDate: LocalDate;
description: string;
}
Когда я получу ответ, все будет правильно установлено, кроме Duration.
В настоящее время я делаю это, чтобы преобразовать значение после того, как я его получил, и это единственный способ заставить это работать:
this.timeTrackingService.findByProjectDateBetween(projectId, LocalDate.of(2020, 3, 1), LocalDate.of(2020, 3, 31))
.subscribe((bookings: Booking[]) => {
bookings.forEach(booking => {
booking.bookedTime = Duration.ofSeconds(Number(booking.bookedTime));
});
Но я хочу иметь правильно сериализованную длительность без этого.
Вот что я пробовал:
export class Booking {
private _bookedTime: Duration;
id: number;
projectId: number;
userId: number;
workDate: LocalDate;
description: string;
set bookedTime(value:Duration){
this._bookedTime = Duration.ofSeconds(Number(value));
}
get bookedTime(): Duration{
if(isNumber(this._bookedTime))
this._bookedTime = Duration.ofSeconds(Number(this._bookedTime));
return this._bookedTime;
}
}
Но все равно будет ошибка "booking.bookedTime.toHours()" is not a function
Только вот трансформирую вручную.
У вас есть подсказка / подсказка для решения этой проблемы?