PiholeApiClient

A client for the PiholeApi API.

See:

This is an unofficial project and still a work in progress (WIP) ... more to come soon.

TODO

  • Login and Auth token generation: admin/scripts/pi-hole/php/api_token.php
  • Undocumented endpointsw
  • Undocumented filters for getAllQueries
  • Generate WebPassword Hash

Installation

Add this line to your application's Gemfile:

gem 'pihole-api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install pihole-api

Usage

  require 'pihole-api'
  client = PiholeApi::Client.new(base_path: 'http://localhost:80/', api_token: '', port: 80)

  # Some example calls
  client.type

Double hash web password to get the api_token. A helper method exists on the client to do this:

require 'pihole-api'
PiholeApi::Client.hash_password(password)
end

### Endpoints
#### Authorised
- `summary_raw`
- `summary(params: {})`
- `over_time_data_10_mins`
- `top_items(number_of_items=10)`
- `get_query_sources(number_of_items=10)`
- `top_clients(number_of_items=10)`
- `get_forward_destinations`
- `get_query_types`
`get_all_queries(params: {}, from_time: nil, until_time: nil, latest_number_of_items: nil)`
- `recent_blocked`
- `enable`
- `disable`

#### Unauthorised
- `type`
- `version`

### Constants
  Constants

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

### Tests
To run tests execute:

    $ rake test

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/trex22/pihole-api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.

## License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).

## Code of Conduct

Everyone interacting in the pihole-api: project