- Ruby >= 2.3
gem install samanage
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'})
- 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
end
Executing 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