示例#1
0
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)
示例#2
0
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()
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)
示例#7
0
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()
示例#8
0
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)