def get_series_metrics(user: InternalUserDTO, series_uuid: UUID, filter_params: dict) -> List[MetricDTO]: series = Series.find_or_fail(series_uuid) Item.find_readable_or_fail(user, series.item_uuid) metrics_dtos = Metric.find_by_series_uuid(series.uuid, filter_params) metrics = [Metric(**m.to_dict()) for m in metrics_dtos] return to_models(metrics, MetricDTO)
def delete_metric(user: InternalUserDTO, series_uuid: UUID, ts: datetime) -> None: series = Series.find_or_fail(series_uuid) Item.find_writeable_or_fail(user, series.item_uuid) metric = Metric.find_or_fail((series_uuid, ts)) metric.delete() metric.session.commit()
def update_series_by_uuid(user: InternalUserDTO, series_uuid: UUID, series_update: SeriesDTO) -> SeriesDTO: series = Series.find_or_fail(series_uuid) Item.find_writeable_or_fail(user, series.item_uuid) series.data = series_update.data series.save() series.session.commit() return to_model(series, SeriesDTO)
def create_series_metric(user: InternalUserDTO, series_uuid: UUID, metric_dto: MetricDTO) -> MetricDTO: series = Series.find_or_fail(series_uuid) Item.find_writeable_or_fail(user, series.item_uuid) metric_dto.series_uuid = series.uuid # type: ignore metric = Metric(**metric_dto.to_dict()) metric.save() metric.session.commit() return to_model(metric, MetricDTO)
def update_metric(user: InternalUserDTO, series_uuid: UUID, ts: datetime, metric_update: MetricDTO) -> MetricDTO: series = Series.find_or_fail(series_uuid) Item.find_writeable_or_fail(user, series.item_uuid) metric = Metric.find_or_fail((series_uuid, ts)) metric.data = metric_update.data metric.save() metric.session.commit() return to_model(metric, MetricDTO)
def get_metric(user: InternalUserDTO, series_uuid: UUID, ts: datetime) -> MetricDTO: series = Series.find_or_fail(series_uuid) Item.find_readable_or_fail(user, series.item_uuid) metrics_dto = Metric.find_or_fail((series_uuid, ts)) return to_model(Metric(**metrics_dto.to_dict()), MetricDTO)
def delete_series_by_uuid(user: InternalUserDTO, series_uuid: UUID) -> None: series = Series.find_or_fail(series_uuid) Item.find_writeable_or_fail(user, series.item_uuid) series.delete() series.session.commit()
def get_series(user: InternalUserDTO, series_uuid: UUID) -> SeriesDTO: series_dto = Series.find_or_fail(series_uuid) Item.find_readable_or_fail(user, series_dto.item_uuid) return to_model(series_dto, SeriesDTO)