Skip to content

gadzorg/gram2_api_client_ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GramV2Client

Installation

Add this line to your application's Gemfile:

gem 'gram_v2_client', git: 'https://github.com/gadzorg/gram2_api_client_ruby.git'

And then execute:

$ bundle install

Setup

Before being used GramV2Client must be configured. In Rails app, put it in an Initializer.

GramV2Client.configure do |c|
   # Base URI used to access GrAM API
   c.site="http://my_site.org/api/v1/"
   # Username provided by Gadz.org
   c.user="my_user"
   # Password provided by Gadz.org
   c.password="my_password"
   # If your app use a proxy to access net, put it here
   c.proxy="my_proxy"
 end
 GramV2Client.init
 
 

Tips : you can init a config for the test environment (local instance of gram2_api_server and default admin account) with GramV2Client.init_test.

Usage

This client is based on ActiveRessource thus you can manipulate account, group and role as Ruby objects.

Account

Find

# Return all accounts
GramV2Client::Account.all

# Return first account
GramV2Client::Account.first

# Find account with uuid = "c2ce6327-158d-458a-9e76-c89ac9c14a14"
account = GramV2Client::Account.find("c2ce6327-158d-458a-9e76-c89ac9c14a14")
puts account.firstname
puts account.lastname
#=> John
#=> Doe

Update

account = GramV2Client::Account.find("c2ce6327-158d-458a-9e76-c89ac9c14a14")
account.firstname = "Johny"
account.save

Create

account = GramV2Client::Account.new(
  firstname: "John", 
  lastname: "Doe", 
  email: "[email protected]", 
  password: "passw0rd",
  is_gadz: false
  )
account.save

Or

account = GramV2Client::Account.create(
  firstname: "John", 
  lastname: "Doe", 
  email: "[email protected]", 
  password: "passw0rd",
  is_gadz: false
  )

Group

Find

# Return all groups
GramV2Client::Group.all

# Return first group
GramV2Client::Group.first

# Find group with uuid = "ffa43f12-f47b-44ea-ad81-f7ede483f394"
group = GramV2Client::group.find("ffa43f12-f47b-44ea-ad81-f7ede483f394")
puts group.short_name
#=> My_group

Members

# Find members of group with uuid = "ffa43f12-f47b-44ea-ad81-f7ede483f394"
group = GramV2Client::group.find("ffa43f12-f47b-44ea-ad81-f7ede483f394").account
# Return Accounts collection
Add/remove member
group = GramV2Client::group.find("ffa43f12-f47b-44ea-ad81-f7ede483f394")
account = GramV2Client::Account.find("c2ce6327-158d-458a-9e76-c89ac9c14a14")

# Add account with uuid = "c2ce6327-158d-458a-9e76-c89ac9c14a14" to group with uuid = "ffa43f12-f47b-44ea-ad81-f7ede483f394"
account.add_to_group(group)

# Remove account with uuid = "c2ce6327-158d-458a-9e76-c89ac9c14a14" to group with uuid = "ffa43f12-f47b-44ea-ad81-f7ede483f394"
account.remove_from_group(group)

Role

Roles management is exactly the same as group management.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec 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.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/gadzorg/gram2_api_client_ruby.

License

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