Samanage Ruby Gem
Requirements
- Ruby >= 2.3
Installation
gem install samanage
Usage
Basic Queries
Initialize API controller
samanage = Samanage::Api.new(token: 'abc123')- Create a user
user = {user: { name: 'John Doe', email: 'john.doe@example.com'}}
samanage.create_user(payload: user)- Find a user by email
my_user = samanage.find_user_by_email(email: 'user@example.com')- Update incident by ID
incident_data = {incident: { priority: 'Critical' }}
incident_update = samanage.update_incident(id: 123, payload: incident_data)- Update hardware
hardware = {hardware: {name: 'Cool New Hostname'}}
result = samanage.update_hardware(id: 123, payload: hardware)- Use Filters
incidents_updated_today = samanage.incidents(options: {'updated' => 1})
expired_hardwares = samanage.hardwares(options: {'warranty_status[]' => 'Expired'})Listing and Searching
- Find All Users
users = samanage.users # returns all users- Filtering Incidents matching custom field and updated in the last 7 days
incidents = samanage.incidents(options: {'Custom Field' => 'Some Value', 'updated[]' => 7})- Listing / Searching also responds to blocks
api.controller.users(options: {'Some Filter' => 'Some Value'}) do |user|
if user['email'].match(/something/)
foo(bar: bar, user: user)
else
puts "User #{user['email']} did not match"
end
endExecuting an api query will return a Hash with the following keys:
-
:response: unparsed http response -
:code: http status code -
:json: Samanage API json response -
:headers: Response headers -
:total_pages: Total pages -
:total_count: Total count of records -
:data: Hash containing response body