Open
Description
the Dashboard Widget service 'AttributeService', it only support 'SAVE' new timeseries data, but no UPDATE accurate record feature
the relative code is : ui-ngx/src/app/core/http/attribute.service.ts
the code
// save with create new not support update yet
public saveEntityTimeseries(entityId: EntityId, timeseriesScope: string, timeseries: Array<AttributeData>,
config?: RequestConfig): Observable<any> {
const timeseriesData: {[key: string]: any} = {};
const deleteTimeseries: AttributeData[] = [];
timeseries.forEach((attribute) => {
if (isDefinedAndNotNull(attribute.value)) {
timeseriesData[attribute.key] = attribute.value;
} else {
deleteTimeseries.push(attribute);
}
});
let deleteEntityTimeseriesObservable: Observable<any>;
if (deleteTimeseries.length) {
deleteEntityTimeseriesObservable = this.deleteEntityTimeseries(entityId, deleteTimeseries, true,
null, null, false, true, config);
} else {
deleteEntityTimeseriesObservable = of(null);
}
let saveEntityTimeseriesObservable: Observable<any>;
if (Object.keys(timeseriesData).length) {
saveEntityTimeseriesObservable =
this.http.post(`/api/plugins/telemetry/${entityId.entityType}/${entityId.id}/timeseries/${timeseriesScope}`,
timeseriesData, defaultHttpOptionsFromConfig(config));
} else {
saveEntityTimeseriesObservable = of(null);
}
return forkJoin([saveEntityTimeseriesObservable, deleteEntityTimeseriesObservable]);
}
suggest prefect the functions, make it can UPDATE special record
or maybe have other best solution for this purpose ?