README.md

[![Build Status](https://travis-ci.org/josephyi/viktor.svg?branch=master)](https://travis-ci.org/josephyi/viktor)
[![Inline docs](http://inch-ci.org/github/josephyi/viktor.svg?branch=master)](http://inch-ci.org/github/josephyi/viktor)

# Viktor

> "Function over form."

Viktor is an Elixir interface to Riot Games' League of Legends API named after a character in the game.

## Prerequisite

> "Join the glorious evolution."

Sign up for an API key at [Riot Games Developer] site.

## Installation

> "Pave the way."

Add viktor to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [{:viktor, "~> 0.0.8"}]
end
```

Ensure viktor is started before your application:

```elixir
def application do
  [applications: [:viktor]]
end
```

Test in iex:

```console
mix deps.get
iex -S mix
```

## Usage

Set the `RIOT_API_KEY` environment variable.

```console
export RIOT_API_KEY=whatever_key_rito_assigned_you
```

Viktor uses Elixir's [Agent] to manage the API key between requests, so you must call `start_link/0`.

If `RIOT_API_KEY` is set

```elixir
Viktor.start_link
```

You may also set the key using `start_link/1`

```elixir
Viktor.start_link("whatever_key_rito_assigned_you")
```

## Examples

I'm in the process of making this a little more pleasant by providing the functions off the root module. These examples will work, but see the [documentation] for details.

```elixir
Viktor.start_link
champion_list = Viktor.champions("na")
champion_list_free_week = Viktor.champions("na", true)
champion_by_id = Viktor.champion("na", 1)
champion_mastery_score = Viktor.mastery_score("na", 21066)
champion_mastery_champion = Viktor.champion_mastery("na", 21066, 1)
champion_mastery_champions = Viktor.champion_masteries("na", 21066)
champion_mastery_3_topchampions = Viktor.top_champion_masteries("na", 21066)
champion_mastery_5_topchampions = Viktor.top_champion_masteries("na", 21066, 5)
current_game = Viktor.current_game("na", 21066)
featured_games = Viktor.featured_games("na")
```

All that's left are the tournament endpoints!

## Other API Libraries

Be sure to check out the other libraries out there!

[velkoz]

[documentation]:https://hexdocs.pm/viktor/0.0.8/Viktor.html#content
[velkoz]:https://github.com/Tim-Machine/velkoz
[Agent]:http://elixir-lang.org/getting-started/mix-otp/agent.html
[Riot Games Developer]:https://developer.riotgames.com/