# `Skipper.SheetsApi`
[🔗](https://github.com/get-skipper/skipper-elixir/blob/main/lib/skipper/sheets_api.ex#L1)

The four Google Sheets v4 calls Skipper needs. An API handle is
`{module, client}`; `Skipper.SheetsApi.HTTP` is the real implementation and
tests can pass an in-memory fake.

# `api`

```elixir
@type api() :: {module(), term()}
```

# `result`

```elixir
@type result(t) :: {:ok, t} | {:error, String.t()}
```

# `append_values`

```elixir
@callback append_values(term(), String.t(), String.t(), rows :: [[String.t()]]) ::
  result(term())
```

# `batch_update`

```elixir
@callback batch_update(term(), String.t(), requests :: [map()]) :: result(term())
```

# `get_spreadsheet`

```elixir
@callback get_spreadsheet(client :: term(), spreadsheet_id :: String.t()) :: result(map())
```

# `get_values`

```elixir
@callback get_values(client :: term(), spreadsheet_id :: String.t(), range :: String.t()) ::
  result(map())
```

# `append_values`

# `batch_update`

# `get_spreadsheet`

# `get_values`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
