# Bufu

Giant Bomb API client for Elixir
([Shadow Teddie-approved](

See [Giant Bomb API information]( and
[documentation]( for more details.

## Usage

iex> Bufu.Game.get 8825
{:ok, %Bufu.Game{name: "Final Fantasy IX", ...}}

iex> Bufu.Game.get! 8825
%Bufu.Game{name: "Final Fantasy IX", ...}

iex> Bufu.Location.list! filter: "name:ivalice"
[%Bufu.Location{name: "Ivalice", ...}, ...]

iex> Bufu.Game.get!(8825) |> Map.get(:developers) |> hd |> Bufu.Company.load! |> Map.get(:name)

See the documentation for more details.

## Potential improvements

1. The search endpoint is not currently implemented. It would take some work to
get it to correctly serialize each resource it returns. You can still search for
a single resource by providing the `filter` option (see examples).
2. Per-client or global response caching could be implemented using ETS or a
pluggable data store.