Skip to content

Add class for heart rate #134

@Wandersalamander

Description

@Wandersalamander
from datetime import date, datetime, timedelta, timezone
from typing import List, Optional, Union

from pydantic.dataclasses import dataclass

from garth import http
from garth.utils import camel_to_snake_dict
from garth.data._base import Data


@dataclass(frozen=True)
class RestingHeartRate(Data):
    user_profile_pk: int
    calendar_date: str
    start_timestamp_gmt: str
    end_timestamp_gmt: str
    start_timestamp_local: str
    end_timestamp_local: str
    max_heart_rate: int
    min_heart_rate: int
    resting_heart_rate: int
    last_seven_days_avg_resting_heart_rate: int
    heart_rate_value_descriptors: List
    heart_rate_values: List


    @classmethod
    def get(
        cls,
        day: Union[date, str],
        *,
        buffer_minutes: int = 60,
        client: Optional[http.Client] = None,
    ) -> Optional["SleepData"]:
        client = client or http.client
        path = (f"/wellness-service/wellness/dailyHeartRate/?date={day}")
        sleep_data = client.connectapi(path)
        assert sleep_data
        sleep_data = camel_to_snake_dict(sleep_data)
        assert isinstance(sleep_data, dict)
        return (
            cls(**sleep_data)
        )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions