class BaruwaAPI

Constants

ENDPOINTS

Public Class Methods

new(url, token, ssl_verify=false) click to toggle source
# File lib/baruwa.rb, line 117
def initialize (url, token, ssl_verify=false)
  @baruwa_url = "#{url}/api/v1"
  @baruwa_token = token
  @ssl_verify = ssl_verify
end

Public Instance Methods

call_api(endpoint, opts=[], data=false, params=false) click to toggle source
# File lib/baruwa.rb, line 563
def call_api(endpoint, opts=[], data=false, params=false)
    url = parse_url(endpoint, opts, params)
    call = get_request(endpoint, url)
    call.body = get_params(data)
    request = Net::HTTP.new(url.host, url.port)
    usessl = @baruwa_url.match('https')
    request.use_ssl = usessl
    if usessl
        if @ssl_verify == false
            request.verify_mode = OpenSSL::SSL::VERIFY_NONE
        end
    end
    response = request.start {|http| http.request(call)}
    parse_response(response)
end
create_alias(userid, data) click to toggle source
# File lib/baruwa.rb, line 162
def create_alias(userid, data)
    # create an alias address
    call_api(ENDPOINTS[:aliases][:new], [userid], data)
end
create_authserver(domainid, data) click to toggle source
# File lib/baruwa.rb, line 341
def create_authserver(domainid, data)
    # create auth server
    call_api(ENDPOINTS[:authservers][:new], [domainid], data)
end
create_deliveryserver(domainid, data) click to toggle source
# File lib/baruwa.rb, line 283
def create_deliveryserver(domainid, data)
    # create a delivery server
    call_api(ENDPOINTS[:deliveryservers][:new], [domainid], data)
end
create_domain(data) click to toggle source
# File lib/baruwa.rb, line 196
def create_domain(data)
    # create a domain
    call_api(ENDPOINTS[:domains][:new], [], data)
end
create_domain_smarthost(domainid, data) click to toggle source
# File lib/baruwa.rb, line 254
def create_domain_smarthost(domainid, data)
    # create a domain smarthost
    call_api(ENDPOINTS[:domainsmarthosts][:new], [domainid], data)
end
create_domainalias(domainid, data) click to toggle source
# File lib/baruwa.rb, line 225
def create_domainalias(domainid, data)
    # create a domain alias
    call_api(ENDPOINTS[:domainaliases][:new], [domainid], data)
end
create_fallbackserver(orgid, data) click to toggle source
# File lib/baruwa.rb, line 459
def create_fallbackserver(orgid, data)
    # create a fallback server
    call_api(ENDPOINTS[:fallbackservers][:new], [orgid], data)
end
create_ldapsettings(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 361
def create_ldapsettings(domainid, serverid, data)
    # create ldap settings
    call_api(ENDPOINTS[:ldapsettings][:new], [domainid, serverid], data)
end
create_org_smarthost(orgid, data) click to toggle source
# File lib/baruwa.rb, line 488
def create_org_smarthost(orgid, data)
    # create a organization smarthost
    call_api(ENDPOINTS[:orgsmarthosts][:new], [orgid], data)
end
create_organization(data) click to toggle source
# File lib/baruwa.rb, line 410
def create_organization(data)
    # create an organization
    call_api(ENDPOINTS[:organizations][:new], [], data)
end
create_radiussettings(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 381
def create_radiussettings(domainid, serverid, data)
    # create radius settings
    call_api(ENDPOINTS[:radiussettings][:new], [domainid, serverid], data)
end
create_relay(orgid, data) click to toggle source
# File lib/baruwa.rb, line 430
def create_relay(orgid, data)
    # create a relay setting
    call_api(ENDPOINTS[:relays][:new], [orgid], data)
end
create_user(data) click to toggle source
# File lib/baruwa.rb, line 137
def create_user(data)
    # create a user
    call_api(ENDPOINTS[:users][:new], [], data)
end
create_user_deliveryserver(domainid, data) click to toggle source
# File lib/baruwa.rb, line 312
def create_user_deliveryserver(domainid, data)
    # create a delivery server
    call_api(ENDPOINTS[:userdeliveryservers][:new], [domainid], data)
end
delete_alias(addressid, data) click to toggle source
# File lib/baruwa.rb, line 172
def delete_alias(addressid, data)
    # delete an alias address
    call_api(ENDPOINTS[:aliases][:delete], [addressid], data)
end
delete_authserver(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 351
def delete_authserver(domainid, serverid, data)
    # delete an auth server
    call_api(ENDPOINTS[:authservers][:delete], [domainid, serverid], data)
end
delete_deliveryserver(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 293
def delete_deliveryserver(domainid, serverid, data)
    # delete delivery servers
    call_api(ENDPOINTS[:deliveryservers][:delete], [domainid, serverid], data)
end
delete_domain(domainid) click to toggle source
# File lib/baruwa.rb, line 206
def delete_domain(domainid)
    # delete a domain
    call_api(ENDPOINTS[:domains][:delete], [domainid])
end
delete_domain_smarthost(domainid, smarthostid, data) click to toggle source
# File lib/baruwa.rb, line 264
def delete_domain_smarthost(domainid, smarthostid, data)
    # delete a domain smarthost
    call_api(ENDPOINTS[:domainsmarthosts][:delete], [domainid, smarthostid], data)
end
delete_domainalias(domainid, aliasid, data) click to toggle source
# File lib/baruwa.rb, line 235
def delete_domainalias(domainid, aliasid, data)
    # delete a domain alias
    call_api(ENDPOINTS[:domainaliases][:delete], [domainid, aliasid], data)
end
delete_fallbackserver(serverid, data) click to toggle source
# File lib/baruwa.rb, line 469
def delete_fallbackserver(serverid, data)
    # delete a fallback server
    call_api(ENDPOINTS[:fallbackservers][:delete], [serverid], data)
end
delete_ldapsettings(domainid, serverid, settingsid, data) click to toggle source
# File lib/baruwa.rb, line 371
def delete_ldapsettings(domainid, serverid, settingsid, data)
    # delete ldap settings
    call_api(ENDPOINTS[:ldapsettings][:delete], [domainid, serverid, settingsid], data)
end
delete_org_smarthost(orgid, smarthostid, data) click to toggle source
# File lib/baruwa.rb, line 498
def delete_org_smarthost(orgid, smarthostid, data)
    # delete a organization smarthost
    call_api(ENDPOINTS[:orgsmarthosts][:delete], [orgid, smarthostid], data)
end
delete_organization(orgid) click to toggle source
# File lib/baruwa.rb, line 420
def delete_organization(orgid)
    # delete an organization
    call_api(ENDPOINTS[:organizations][:delete], [orgid])
end
delete_radiussettings(domainid, serverid, settingsid, data) click to toggle source
# File lib/baruwa.rb, line 391
def delete_radiussettings(domainid, serverid, settingsid, data)
    # delete radius settings
    call_api(ENDPOINTS[:radiussettings][:delete], [domainid, serverid, settingsid], data)
end
delete_relay(relayid, data) click to toggle source
# File lib/baruwa.rb, line 440
def delete_relay(relayid, data)
    # delete relay settings
    call_api(ENDPOINTS[:relays][:delete], [relayid], data)
end
delete_user(userid) click to toggle source
# File lib/baruwa.rb, line 147
def delete_user(userid)
    # delete a user
    call_api(ENDPOINTS[:users][:delete], [userid])
end
delete_user_deliveryserver(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 322
def delete_user_deliveryserver(domainid, serverid, data)
    # delete delivery servers
    call_api(ENDPOINTS[:userdeliveryservers][:delete], [domainid, serverid], data)
end
get_aliases(addressid) click to toggle source
# File lib/baruwa.rb, line 157
def get_aliases(addressid)
    # get aliases
    call_api(ENDPOINTS[:aliases][:get], [addressid])
end
get_authserver(domainid, serverid) click to toggle source
# File lib/baruwa.rb, line 336
def get_authserver(domainid, serverid)
    # get auth server
    call_api(ENDPOINTS[:authservers][:get], [domainid, serverid])
end
get_authservers(domainid, page=nil) click to toggle source
# File lib/baruwa.rb, line 327
def get_authservers(domainid, page=nil)
    # get auth servers
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:authservers][:list], [domainid], false, params)
end
get_deliveryserver(domainid, serverid) click to toggle source
# File lib/baruwa.rb, line 278
def get_deliveryserver(domainid, serverid)
    # get a delivery server
    call_api(ENDPOINTS[:deliveryservers][:get], [domainid, serverid])
end
get_deliveryservers(domainid, page=nil) click to toggle source
# File lib/baruwa.rb, line 269
def get_deliveryservers(domainid, page=nil)
    # get delivery servers
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:deliveryservers][:list], [domainid], false, params)
end
get_domain(domainid) click to toggle source
# File lib/baruwa.rb, line 186
def get_domain(domainid)
    # get a domain
    call_api(ENDPOINTS[:domains][:get], [domainid])
end
get_domain_by_name(domainname) click to toggle source
# File lib/baruwa.rb, line 191
def get_domain_by_name(domainname)
    # get a domain by name
    call_api(ENDPOINTS[:domains][:get_by_name], [domainname])
end
get_domain_smarthost(domainid, smarthostid) click to toggle source
# File lib/baruwa.rb, line 249
def get_domain_smarthost(domainid, smarthostid)
    # get domain smarthost
    call_api(ENDPOINTS[:domainsmarthosts][:get], [domainid, smarthostid])
end
get_domain_smarthosts(domainid, page=nil) click to toggle source
# File lib/baruwa.rb, line 240
def get_domain_smarthosts(domainid, page=nil)
    # get domain smarthosts
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:domainsmarthosts][:list], [domainid], false, params)
end
get_domainalias(domainid, aliasid) click to toggle source
# File lib/baruwa.rb, line 220
def get_domainalias(domainid, aliasid)
    # get domain alias
    call_api(ENDPOINTS[:domainaliases][:get], [domainid, aliasid])
end
get_domainaliases(domainid, page=nil) click to toggle source
# File lib/baruwa.rb, line 211
def get_domainaliases(domainid, page=nil)
    # get domain aliases
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:domainaliases][:list], [domainid], false, params)
end
get_domains(page=nil) click to toggle source
# File lib/baruwa.rb, line 177
def get_domains(page=nil)
    # get domains
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:domains][:list], [], false, params)
end
get_fallbackserver(serverid) click to toggle source
# File lib/baruwa.rb, line 454
def get_fallbackserver(serverid)
    # get fallback server
    call_api(ENDPOINTS[:fallbackservers][:get], [serverid])
end
get_fallbackservers(orgid, page=nil) click to toggle source
# File lib/baruwa.rb, line 445
def get_fallbackservers(orgid, page=nil)
    # get fallback servers
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:fallbackservers][:list], [orgid], false, params)
end
get_ldapsettings(domainid, serverid, settingsid) click to toggle source
# File lib/baruwa.rb, line 356
def get_ldapsettings(domainid, serverid, settingsid)
    # get ldap settings
    call_api(ENDPOINTS[:ldapsettings][:get], [domainid, serverid, settingsid])
end
get_org_smarthost(orgid, smarthostid) click to toggle source
# File lib/baruwa.rb, line 483
def get_org_smarthost(orgid, smarthostid)
    # get organization smarthost
    call_api(ENDPOINTS[:orgsmarthosts][:get], [orgid, smarthostid])
end
get_org_smarthosts(orgid, page=nil) click to toggle source
# File lib/baruwa.rb, line 474
def get_org_smarthosts(orgid, page=nil)
    # get organization smarthosts
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:orgsmarthosts][:list], [orgid], false, params)
end
get_organization(orgid) click to toggle source
# File lib/baruwa.rb, line 405
def get_organization(orgid)
    # get organization
    call_api(ENDPOINTS[:organizations][:get], [orgid])
end
get_organizations(page=nil) click to toggle source
# File lib/baruwa.rb, line 396
def get_organizations(page=nil)
    # get organizations
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:organizations][:list], [], false, params)
end
get_params(params) click to toggle source
# File lib/baruwa.rb, line 508
def get_params(params)
    # convert params has to string
    if params then
        params.collect {|k,v| "#{k}=#{CGI::escape(v.to_s)}"}.join('&')
    else
        params
    end
end
get_radiussettings(domainid, serverid, settingsid) click to toggle source
# File lib/baruwa.rb, line 376
def get_radiussettings(domainid, serverid, settingsid)
    # get radius settings
    call_api(ENDPOINTS[:radiussettings][:get], [domainid, serverid, settingsid])
end
get_relay(relayid) click to toggle source
# File lib/baruwa.rb, line 425
def get_relay(relayid)
    # get a relay setting
    call_api(ENDPOINTS[:relays][:get], [relayid])
end
get_request(endpoint, url) click to toggle source
# File lib/baruwa.rb, line 536
def get_request(endpoint, url)
    case endpoint[:method]
    when :post
        Net::HTTP::Post.new(url.request_uri, set_headers)
    when :get
        Net::HTTP::Get.new(url.request_uri, set_headers)
    when :put
        Net::HTTP::Put.new(url.request_uri, set_headers)
    when :delete
        Net::HTTP::Delete.new(url.request_uri, set_headers)
    else
        throw "Unknown call method #{endpoint[:method]}"
    end
end
get_status() click to toggle source
# File lib/baruwa.rb, line 503
def get_status
    # get status
    call_api(ENDPOINTS[:status])
end
get_user(userid) click to toggle source
# File lib/baruwa.rb, line 132
def get_user(userid)
    # get a user
    call_api(ENDPOINTS[:users][:get], [userid])
end
get_user_deliveryserver(domainid, serverid) click to toggle source
# File lib/baruwa.rb, line 307
def get_user_deliveryserver(domainid, serverid)
    # get a delivery server
    call_api(ENDPOINTS[:userdeliveryservers][:get], [domainid, serverid])
end
get_user_deliveryservers(domainid, page=nil) click to toggle source
# File lib/baruwa.rb, line 298
def get_user_deliveryservers(domainid, page=nil)
    # get delivery servers
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:userdeliveryservers][:list], [domainid], false, params)
end
get_users(page=nil) click to toggle source
# File lib/baruwa.rb, line 123
def get_users(page=nil)
    # get users
    params = {}
    if page.is_a? Integer then
        params[:page] = page
    end
    call_api(ENDPOINTS[:users][:list], [], false, params)
end
parse_response(response) click to toggle source
# File lib/baruwa.rb, line 551
def parse_response(response)
    if response.code.to_i == 200 || response.code.to_i == 201
        if response.body.nil? || response.body.empty?
            {:code => response.code.to_i, :message => "Completed successfully"}
        else
            JSON.parse(response.body)
        end
    else
        raise StandardError.new("#{response.code} #{response.body}")
    end
end
parse_url(endpoint, opts, params=false) click to toggle source
# File lib/baruwa.rb, line 517
def parse_url(endpoint, opts, params=false)
    if opts.length > 0 then
        endpoint_string = endpoint[:name] % opts
    else
        endpoint_string = endpoint[:name]
    end
    url_string = @baruwa_url + endpoint_string
    url_string = url_string + '?' + get_params(params) if params
    uri = URI.parse(url_string)
    return uri
end
set_headers() click to toggle source
# File lib/baruwa.rb, line 529
def set_headers
    {
        'User-Agent' => 'BaruwaAPI-Ruby',
        'Authorization' => "Bearer #{@baruwa_token}"
    }
end
set_user_passwd(userid, data) click to toggle source
# File lib/baruwa.rb, line 152
def set_user_passwd(userid, data)
    # set a user password
    call_api(ENDPOINTS[:users][:password], [userid], data)
end
update_alias(addressid, data) click to toggle source
# File lib/baruwa.rb, line 167
def update_alias(addressid, data)
    # update an alias address
    call_api(ENDPOINTS[:aliases][:update], [addressid], data)
end
update_authserver(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 346
def update_authserver(domainid, serverid, data)
    # update an auth server
    call_api(ENDPOINTS[:authservers][:update], [domainid, serverid], data)
end
update_deliveryserver(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 288
def update_deliveryserver(domainid, serverid, data)
    # update a delivery server
    call_api(ENDPOINTS[:deliveryservers][:update], [domainid, serverid], data)
end
update_domain(domainid, data) click to toggle source
# File lib/baruwa.rb, line 201
def update_domain(domainid, data)
    # update a domain
    call_api(ENDPOINTS[:domains][:update], [domainid], data)
end
update_domain_smarthost(domainid, smarthostid, data) click to toggle source
# File lib/baruwa.rb, line 259
def update_domain_smarthost(domainid, smarthostid, data)
    # update a domain smarthost
    call_api(ENDPOINTS[:domainsmarthosts][:update], [domainid, smarthostid], data)
end
update_domainalias(domainid, aliasid, data) click to toggle source
# File lib/baruwa.rb, line 230
def update_domainalias(domainid, aliasid, data)
    # update a domain alias
    call_api(ENDPOINTS[:domainaliases][:update], [domainid, aliasid], data)
end
update_fallbackserver(serverid, data) click to toggle source
# File lib/baruwa.rb, line 464
def update_fallbackserver(serverid, data)
    # update a fallback server
    call_api(ENDPOINTS[:fallbackservers][:update], [serverid], data)
end
update_ldapsettings(domainid, serverid, settingsid, data) click to toggle source
# File lib/baruwa.rb, line 366
def update_ldapsettings(domainid, serverid, settingsid, data)
    # update ldap settings
    call_api(ENDPOINTS[:ldapsettings][:update], [domainid, serverid, settingsid], data)
end
update_org_smarthost(orgid, smarthostid, data) click to toggle source
# File lib/baruwa.rb, line 493
def update_org_smarthost(orgid, smarthostid, data)
    # update a organization smarthost
    call_api(ENDPOINTS[:orgsmarthosts][:update], [orgid, smarthostid], data)
end
update_organization(orgid, data) click to toggle source
# File lib/baruwa.rb, line 415
def update_organization(orgid, data)
    # update an organization
    call_api(ENDPOINTS[:organizations][:update], [orgid], data)
end
update_radiussettings(domainid, serverid, settingsid, data) click to toggle source
# File lib/baruwa.rb, line 386
def update_radiussettings(domainid, serverid, settingsid, data)
    # update radius settings
    call_api(ENDPOINTS[:radiussettings][:update], [domainid, serverid, settingsid], data)
end
update_relay(relayid, data) click to toggle source
# File lib/baruwa.rb, line 435
def update_relay(relayid, data)
    # update relay settings
    call_api(ENDPOINTS[:relays][:update], [relayid], data)
end
update_user(data) click to toggle source
# File lib/baruwa.rb, line 142
def update_user(data)
    # update a user
    call_api(ENDPOINTS[:users][:update], [], data)
end
update_user_deliveryserver(domainid, serverid, data) click to toggle source
# File lib/baruwa.rb, line 317
def update_user_deliveryserver(domainid, serverid, data)
    # update a delivery server
    call_api(ENDPOINTS[:userdeliveryservers][:update], [domainid, serverid], data)
end