An open API service indexing awesome lists of open source software.

https://github.com/fteem/excountries

🗺 Elixir wrapper for REST Countries API
https://github.com/fteem/excountries

Last synced: 4 months ago
JSON representation

🗺 Elixir wrapper for REST Countries API

Awesome Lists containing this project

README

          

Excountries
===========

![](https://img.shields.io/hexpm/dt/excountries.svg?style=flat-square) ![](https://img.shields.io/hexpm/v/excountries.svg?style=flat-square)

This is a tiny [Elixir](http://elixir-lang.org) wrapper for the [REST Countries API](http://restcountries.eu/).

## Installation

First, add Excountries to your `mix.exs` dependencies:

```elixir
def deps do
[{:excountries, "~> 0.0.1"}]
end
```

and run `$ mix deps.get`.

## Usage

There are multiple functions via which one can search for countries in the API.
Each function returns a single or a list of ```Country``` structs.

### Get all

Returns a list of countries.
```elixir
Excountries.Radar.all()
```

### Name

Searches for a country by it's exact name:
```elixir
Excountries.Radar.by_full_name("United States Of America")
```

Searches for a country by a substring of it's name or abbreviation:
```elixir
Excountries.Radar.by_name("USA")
```

### Language

Searches for a country by a language code:

```elixir
Excountries.Radar.by_language("en")
```
Language codes must be ISO 639-1 compliant. If not, throws error.

### Currency

Searches for a country by currency name:

```elixir
Excountries.Radar.by_currency("USD")
```

### Capital city

Searches for the country by it's capital city:

```elixir
Excountries.Radar.by_capital("USD")
```

### Calling code

Searches for the country by it's calling code:

```elixir
Excountries.Radar.by_calling_code("01")
```

### Region

Searches for the country by it's region:

```elixir
Excountries.Radar.by_region("Oceania")
```

### Subregion

Searches for the country by it's subregion:

```elixir
Excountries.Radar.by_subregion("Polynesia")
```

### Country code

Searches for the country by it's country code:

```elixir
Excountries.Radar.by_country_code("MKD")
```

## ```Country```

```%Excountries.Country``` is a struct containing multiple properties:

- name
- capital
- relevance
- region
- subregion
- population
- latitude
- longitude
- demonym
- area
- timezones
- nativeName
- topLevelDomain
- currencies
- languages

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

## License

Copyright © 2015 Ilija Eftimov

This work is free. You can redistribute it and/or modify it under the
terms of the MIT License. See the LICENSE file for more details.