import requests
from datetime import datetime

base_url = "https://app.powershaper.io/meters/api/v1"
access_token = "your--access--token--here"
# it will look something like 1a2b3c4d5f6a7b8c9d0e11f22a33b44c55d66e77


def get_meters():
    """Returns a list of meters to which this user has access."""
    url = f"{base_url}/meters"

    response = requests.get(
        url=url,
        headers={
            "Authorization": f"Token {access_token}"
        }
    )
    return response.json()


def get_usage_records(
    start: datetime,
    end: datetime,
    meter_id: str,
    utility: str,
    aggregate: str = "day",
):
    """Returns a list of usage totals for the given period."""

    data = {
        "tz": "Europe/London",
        "start": start.strftime("%Y-%m-%d"),
        "end": end.strftime("%Y-%m-%d"),
        "aggregate": aggregate,
    }

    url = f"{base_url}/meter/{meter_id}/{utility}"

    response = requests.get(
        url=url,
        params=data,
        headers={
            "Authorization": f"Token {access_token}"
        },
    )
    output = response.json()

    return [{"date": row["time"], "usage": row["energy_kwh"]} for row in output]
