AxTrack API Ruby Wrapper

Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file lib/axTrack. To experiment with that code, run bin/console for an interactive prompt.

TODO: Delete this and the text above, and describe your gem

Open questions

  • how do I know what type of sensors are available.

Installation

Add this line to your application's Gemfile:

gem 'ax-track'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install axTrack

Usage

Configure the client

The Gem is configured by default to work with the public platform of Adnexo at

  • API: https://prod.api.ax-track.ch/api/v1
  • User Interface: https://app.ax-track.ch/#/map/assets/

If you want the gem to use a different URL, create a file in the initializer folder

# folder: `config/initializers/ax-track.rb`
AxTrack.set_base_url_api = 'NEW API URL'
AxTrack.set_base_url_user = 'NEW USER URL'

If you want to test which URL is configures, you can

AxTrack.base_url_api
=> "https://prod.api.ax-track.ch/api/v1"
AxTrack.base_url_user
=> "https://app.ax-track.ch/#/map/assets/"

Instantiate a client

client = AxTrack::Client.new(api_key: your_api_key)
# Or if you have a ENV['AXTRACK_API_KEY'] set, you don't need to pass in the api key.
client = AxTrack::Client.new

Trackers

# Get a list of all trackers
client.tracker.list

# Get the specific information of a specific tracker. If :asset_id is invalid, a AxTrack::Resource::NotFoundError is returned
record = client.tracker.retrieve(:tracker_id)

You will receive an object AxTrack::Tracker (or a collection for the list call), where you can comfortably access each value

record.asset_id
=> 1361
# The name on asset_id
record.name
=> #Name of asset on AxTrack#
record.identifier
=> "70B3D57050006F3B"
record.model
=> "dm-oyster"

# To access any asset details directly on the tracker just do
record.asset_details

# To get an array with all sensors
record.available_sensor_data
 => ["gps", "temperature", "battery", "humidity"]

Assets

# Get a list of all assets
client.asset.list

# Get a specific asset. If :asset_id is invalid, a AxTrack::Resource::NotFoundError is returned
client.asset.retrieve(:asset_id)

# Update a specif asset
client.asset.update(:tracker_id, params)
#t Example: to update the name
client.tracker.update(:tracker_id, name: 'New name')

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 the created tag, and push the .gem file to rubygems.org.

To test the application in the console

client = AxTrack::Client.new(api_key: _YOUR_API_KEY_)
# to get a list of all trackers (just as an example)
client.trackers

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/axTrack.

License

The gem is available as open source under the terms of the MIT License.

Open development

  • Pagination for development